Skip to content

Commit 7841266

Browse files
Merge pull request #349 from OpenSPP/farmer-registry-laos
Farmer registry laos
2 parents 4035e81 + 81bbfcc commit 7841266

27 files changed

+71702
-2
lines changed

spp_farmer_registry_base/models/farmer.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,23 @@ class Farmer(models.Model):
99
farmer_national_id = fields.Char(string="National ID Number")
1010
farmer_household_size = fields.Integer(string="Farmer Household Size")
1111
farmer_postal_address = fields.Char("Postal Address")
12+
marital_status = fields.Selection(
13+
[
14+
("single", "Single"),
15+
("widowed", "Widowed"),
16+
("separated", "Separated"),
17+
],
18+
string="Marital Status",
19+
)
20+
highest_education_level = fields.Selection(
21+
[
22+
("none", "None"),
23+
("primary", "Primary"),
24+
("secondary", "Secondary"),
25+
("tertiary", "Tertiary"),
26+
],
27+
string="Highest Educational Level",
28+
)
1229

1330

1431
class TempFarmer(models.Model):
@@ -42,8 +59,6 @@ def _get_dynamic_selection(self):
4259
farmer_marital_status = fields.Selection(
4360
[
4461
("single", "Single"),
45-
("married_monogamous", "Married Monogamous"),
46-
("married_polygamous", "Married Polygamous"),
4762
("widowed", "Widowed"),
4863
("separated", "Separated"),
4964
],

spp_farmer_registry_base/views/res_partner.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,11 @@
4949
<field name="view_mode">tree,form,gis</field>
5050
</record>
5151

52+
<record id="action_groups_list_gis_view" model="ir.actions.act_window.view">
53+
<field name="sequence" eval="3" />
54+
<field name="view_mode">gis</field>
55+
<field name="view_id" ref="ir_ui_view_geo_partner" />
56+
<field name="act_window_id" ref="g2p_registry_group.action_groups_list" />
57+
</record>
58+
5259
</odoo>
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
====================
2+
Farmer Registry Laos
3+
====================
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:71b521640a565d5964587cdd4a2645629858a6b62c9ef782c53a896163edfce8
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Beta
16+
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
18+
:alt: License: LGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-openspp%2Fopenspp--modules-lightgray.png?logo=github
20+
:target: https://github.com/openspp/openspp-modules/tree/15.0.1.1/spp_idpass
21+
:alt: openspp/openspp-modules
22+
23+
|badge1| |badge2| |badge3|
24+
25+
OpenSPP Farmer Registry Laos
26+
27+
**Table of contents**
28+
29+
.. contents::
30+
:local:
31+
32+
Bug Tracker
33+
===========
34+
35+
Bugs are tracked on `GitHub Issues <https://github.com/openspp/openspp-modules/issues>`_.
36+
In case of trouble, please check there if your issue has already been reported.
37+
If you spotted it first, help us to smash it by providing a detailed and welcomed
38+
`feedback <https://github.com/openspp/openspp-modules/issues/new?body=module:%20spp_idpass%0Aversion:%2015.0.1.1%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
39+
40+
Do not contact contributors directly about support or help with technical issues.
41+
42+
Credits
43+
=======
44+
45+
Authors
46+
~~~~~~~
47+
48+
* OpenSPP.org
49+
50+
Maintainers
51+
~~~~~~~~~~~
52+
53+
.. |maintainer-jeremi| image:: https://github.com/jeremi.png?size=40px
54+
:target: https://github.com/jeremi
55+
:alt: jeremi
56+
.. |maintainer-gonzalesedwin1123| image:: https://github.com/gonzalesedwin1123.png?size=40px
57+
:target: https://github.com/gonzalesedwin1123
58+
:alt: gonzalesedwin1123
59+
60+
Current maintainers:
61+
62+
|maintainer-jeremi| |maintainer-gonzalesedwin1123|
63+
64+
This module is part of the `openspp/openspp-modules <https://github.com/openspp/openspp-modules/tree/15.0.1.1/spp_idpass>`_ project on GitHub.
65+
66+
You are welcome to contribute.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
2+
3+
from . import models
4+
from . import wizard
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
2+
3+
4+
{
5+
"name": "Farmer Registry: Laos",
6+
"category": "OpenSPP",
7+
"version": "17.0.1.0.0",
8+
"sequence": 1,
9+
"author": "OpenSPP.org",
10+
"website": "https://github.com/OpenSPP/openspp-modules",
11+
"license": "LGPL-3",
12+
"development_status": "Beta",
13+
"external_dependencies": {"python": ["faker"]},
14+
"maintainers": ["jeremi", "gonzalesedwin1123"],
15+
"depends": [
16+
"base",
17+
"g2p_registry_base",
18+
"g2p_registry_group",
19+
"g2p_registry_individual",
20+
"g2p_registry_membership",
21+
"spp_farmer_registry_base",
22+
"spp_registry_group_hierarchy",
23+
"spp_event_data",
24+
"g2p_programs",
25+
"queue_job",
26+
],
27+
"data": [
28+
"security/ir.model.access.csv",
29+
"data/group_kind_data.xml",
30+
"views/farmer_group_view.xml",
31+
"views/group_view.xml",
32+
"views/event_data_view.xml",
33+
"views/generate_farmer_data_view.xml",
34+
"wizard/create_event_farm_wizard.xml",
35+
],
36+
"assets": {},
37+
"demo": [],
38+
"images": [],
39+
"application": True,
40+
"installable": True,
41+
"auto_install": False,
42+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<odoo noupdate="1">
2+
3+
<record id="kind_farmer_group" model="g2p.group.kind">
4+
<field name="name">Farmer Group</field>
5+
<field name="allow_all_member_type">True</field>
6+
</record>
7+
8+
</odoo>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
2+
3+
from . import farm_activity
4+
from . import farm
5+
from . import farmer
6+
from . import event_data
7+
from . import generate_farmer_data
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
2+
3+
from odoo import fields, models
4+
5+
6+
class OpenSPPStatisticsCycle(models.Model):
7+
_name = "spp.event.cycle"
8+
_description = "Event Cycle"
9+
10+
program_id = fields.Many2one("g2p.program", "Program")
11+
cycle_id = fields.Many2one("g2p.cycle", "Cycle")
12+
event_type = fields.Selection(
13+
[
14+
("fgmemr1", "FG member in round 1"),
15+
("wumem", "WU member, but not received production grant"),
16+
("fgmemr2", "FG member in round 2"),
17+
("impagri", "Implementation of agriculture production grants (round 1)"),
18+
("implive", "Implementation of livestock production grants (round 1)"),
19+
],
20+
default="fgmemr1",
21+
string="Event Type",
22+
)
23+
no_hh_member = fields.Integer("No. of HH Member")
24+
no_indigenous = fields.Integer("No. of Indigenous")
25+
percent_indigenous = fields.Float("% of Indigenous")
26+
no_15_35 = fields.Integer("No. of Member in 15-35")
27+
percent_15_35 = fields.Float("% of Member in 15-35")
28+
no_woman_headed = fields.Integer("No. of Woman-headed HH")
29+
no_better_off = fields.Integer("No. of Better-off HH")
30+
no_medium = fields.Integer("No. of Medium HH")
31+
no_poor = fields.Integer("No. of Poor HH")
32+
no_male = fields.Integer("No. of Male")
33+
no_female = fields.Integer("No. of Female")
34+
no_both = fields.Integer("No. of Both")
35+
no_implemented = fields.Integer("No. of Implemented")
36+
no_on_going = fields.Integer("No. of On-going")
37+
no_not_implemented = fields.Integer("No. of Not Implemented")
38+
production_area = fields.Float("Production Area (ha)")
39+
agricultural_yield = fields.Float("Agricultural Yield (ton)")
40+
agricultural_productivity = fields.Float("Agricultural Productivity (ton/ha)")
41+
no_livestock_project = fields.Integer("No. of Livestock provided by project")
42+
no_livestock_present = fields.Integer("No. of Livestock at present")
43+
no_livestock_consumption = fields.Integer("No. of Livestock consumption")
44+
no_livestock_sold = fields.Integer("No. of Livestock sold")
45+
no_livestock_increase = fields.Integer("No. of Livestock increase")
46+
47+
def get_view_id(self):
48+
"""
49+
This retrieves the View ID of this model
50+
"""
51+
return self.env["ir.ui.view"].search([("model", "=", self._name), ("type", "=", "form")], limit=1).id
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import logging
2+
3+
from odoo import _, api, fields, models
4+
5+
_logger = logging.getLogger(__name__)
6+
7+
8+
class Farm(models.Model):
9+
_inherit = "res.partner"
10+
11+
farm_prod_ids = fields.One2many("spp.farm.activity", "prod_farm_id", string="Products")
12+
active_event_cycle = fields.Many2one("spp.event.data", compute="_compute_active_event_cycle")
13+
14+
@api.depends("event_data_ids")
15+
def _compute_active_event_cycle(self):
16+
"""
17+
This computes the active farm event of the group
18+
"""
19+
for rec in self:
20+
rec.active_event_cycle = rec._get_active_event_id("spp.event.cycle")
21+
22+
# overwrite for now since we will not create an individual per group in this module
23+
def create_update_farmer(self, farm):
24+
pass
25+
26+
def open_create_event_wizard(self):
27+
for rec in self:
28+
model_name = "spp.event.cycle"
29+
# compute wizard model name
30+
31+
wizard_list = model_name.split(".")
32+
wizard_model = "%s.create." % wizard_list[0]
33+
wizard_list.pop(0)
34+
view_name = self.env["ir.model"].search([("model", "=", model_name)]).name
35+
for split_wizard in wizard_list:
36+
wizard_model += "%s." % split_wizard
37+
wizard_model += "wizard"
38+
view_id = self.env.ref("spp_farmer_registry_laos.create_event_cycle_form_view").id
39+
# create the event data and pass it to event_data_model wizard
40+
vals_list = {
41+
"model": model_name,
42+
"partner_id": rec.id,
43+
}
44+
event_id = self.env["spp.event.data"].create(vals_list)
45+
46+
wiz = self.env[wizard_model].create({"event_id": event_id.id})
47+
48+
return {
49+
"name": _("Create %s", view_name),
50+
"view_mode": "form",
51+
"res_model": wizard_model,
52+
"res_id": wiz.id,
53+
"view_id": view_id,
54+
"type": "ir.actions.act_window",
55+
"target": "new",
56+
"context": self.env.context,
57+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from odoo import fields, models
2+
3+
4+
class FarmActivity(models.Model):
5+
_inherit = "spp.farm.activity"
6+
7+
product_id = fields.Integer("Product ID")
8+
product_name = fields.Char("Product Name")
9+
product_name_eng = fields.Char("Product Name (English)")
10+
prod_farm_id = fields.Many2one("res.partner", string="Product Farm")
11+
target_year = fields.Char("Target Year")

0 commit comments

Comments
 (0)