This commit is contained in:
Oscar 2021-10-25 23:32:56 -05:00
parent 5acbceab52
commit 18dda707b0
16 changed files with 317 additions and 1 deletions

View File

@ -4,6 +4,8 @@ from trytond.pool import Pool
from . import configuration
from . import production
from . import location
from . import quality
from . import purchase
def register():
@ -15,4 +17,8 @@ def register():
production.FarmingProduction,
production.FarmingActivityShipmentInternal,
location.FarmingLocation,
quality.QualityAttribute,
quality.GrowingProduct,
quality.ICACertificate,
purchase.Purchase,
module='farming', type_='model')

View File

@ -19,6 +19,7 @@ class Kind(ModelSQL, ModelView):
"Kind"
__name__ = "farming.activity.kind"
name = fields.Char('Name', required=True)
activity_time = fields.Float('Act. Time', required=True)
@classmethod
def __setup__(cls):

35
purchase.py Normal file
View File

@ -0,0 +1,35 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
# from decimal import Decimal
from trytond.model import fields
from trytond.pool import PoolMeta
from trytond.pyson import Eval
# from trytond.wizard import Wizard, StateReport, StateView, Button
# from trytond.report import Report
# from trytond.i18n import gettext
STATES = {
'readonly': Eval('state') != 'draft',
}
class Purchase(metaclass=PoolMeta):
__name__ = 'purchase.purchase'
ica_certicate = fields.Many2One('farming.ica', 'Certificado ICA',
domain=[('party', '=', Eval('party'))],
states={
'readonly': Eval('state').in_(['confirmed', 'processed']),
})
# class PurchaseLine(metaclass=PoolMeta):
# __name__ = 'purchase.line'
# operation_center = fields.Many2One('company.operation_center',
# 'Operation Center', states={
# 'readonly': Eval('purchase_state') != 'draft',
# }, depends=['purchase_state'])
# analytic_account = fields.Many2One('analytic_account.account',
# 'Analytic Account', domain=[
# ('type', 'in', ['normal', 'distribution']),
# ('company', '=', Eval('context', {}).get('company', -1))
# ])

17
purchase.xml Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="purchase_view_form">
<field name="model">purchase.purchase</field>
<field name="inherit" ref="purchase.purchase_view_form"/>
<field name="name">purchase_form</field>
</record>
<!-- <record model="ir.ui.view" id="purchase_line_view_form">
<field name="model">purchase.line</field>
<field name="inherit" ref="purchase.purchase_line_view_form"/>
<field name="name">purchase_line_form</field>
</record> -->
</data>
</tryton>

74
quality.py Normal file
View File

@ -0,0 +1,74 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model import ModelView, ModelSQL, fields
class QualityAttribute(ModelSQL, ModelView):
"Quality Attribute"
__name__ = "farming.quality.attribute"
name = fields.Char('Name', required=True)
@classmethod
def __setup__(cls):
super(QualityAttribute, cls).__setup__()
cls._order.insert(0, ('name', 'ASC'))
class GrowingProduct(ModelSQL, ModelView):
"Growing Product"
__name__ = "farming.quality.growing_product"
name = fields.Char('Name', required=True)
area = fields.Float('Area')
certificate = fields.Many2One('farming.quality.ica', 'ICA', required=True)
class ICACertificate(ModelSQL, ModelView):
"ICA Certificate"
__name__ = "farming.quality.ica"
number = fields.Char('Number', required=True)
issue_date = fields.Date('Issue Date', required=True)
expiration_date = fields.Date('Expiration Date', required=True)
party = fields.Many2One('party.party', 'Party',
required=True)
growing_products = fields.One2Many('farming.growing_product',
'certificate', 'Growing Products', required=True)
farm = fields.Char('Farm', required=True)
location = fields.Char('Location', required=True)
species = fields.Many2Many('product.product',
None, 'Species', add_remove=[], required=True)
@classmethod
def __setup__(cls):
super(ICACertificate, cls).__setup__()
cls._order.insert(0, ('expiration_date', 'ASC'))
@classmethod
def search_rec_name(cls, name, clause):
if clause[1].startswith('!') or clause[1].startswith('not '):
bool_op = 'AND'
else:
bool_op = 'OR'
return [bool_op,
('number',) + tuple(clause[1:]),
('party',) + tuple(clause[1:]),
]
def get_rec_name(self, name):
return '[' + self.number + '] ' + self.party.name
@classmethod
def create(cls, vlist):
icas = cls.search([], order=[('id', 'DESC')], limit=1)
if icas:
to_add = []
for pd in icas[0].growing_products:
to_add.append({
'name': pd.name,
'area': None,
})
for value in vlist:
value.update({
'growing_products': [('create', to_add)]
})
super(ICACertificate, cls).create(vlist)

109
quality.xml Normal file
View File

@ -0,0 +1,109 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="farming_quality_attribute_view_tree">
<field name="model">farming.quality.attribute</field>
<field name="type">tree</field>
<field name="priority">10</field>
<field name="name">quality_attribute_tree</field>
</record>
<record model="ir.ui.view" id="farming_quality_attribute_view_form">
<field name="model">farming.quality.attribute</field>
<field name="type">form</field>
<field name="name">quality_attribute_form</field>
</record>
<record model="ir.action.act_window" id="act_farming_quality_attribute_tree">
<field name="name">Quality Attribute</field>
<field name="res_model">farming.quality.attribute</field>
</record>
<record model="ir.action.act_window.view" id="act_farming_quality_attribute_tree_view1">
<field name="sequence" eval="1"/>
<field name="view" ref="farming_quality_attribute_view_tree"/>
<field name="act_window" ref="act_farming_quality_attribute_tree"/>
</record>
<record model="ir.action.act_window.view" id="act_farming_quality_attribute_tree_view2">
<field name="sequence" eval="2"/>
<field name="view" ref="farming_quality_attribute_view_form"/>
<field name="act_window" ref="act_farming_quality_attribute_tree"/>
</record>
<menuitem parent="farming.menu_farming" sequence="1"
action="act_farming_quality_attribute_tree" id="menu_farming_quality_attribute_tree"/>
<record model="ir.model.access" id="access_farming_quality_attribute">
<field name="model" search="[('model', '=', 'farming.quality.attribute')]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.model.access" id="access_farming_quality_attribute_admin">
<field name="model" search="[('model', '=', 'farming.quality.attribute')]"/>
<field name="group" ref="farming.group_farming_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
<record model="ir.ui.view" id="farming_quality_growing_product_view_tree">
<field name="model">farming.quality.growing_product</field>
<field name="type">tree</field>
<field name="priority">10</field>
<field name="name">growing_product_tree</field>
</record>
<record model="ir.ui.view" id="farming_quality_growing_product_view_form">
<field name="model">farming.quality.growing_product</field>
<field name="type">form</field>
<field name="name">growing_product_form</field>
</record>
<record model="ir.ui.view" id="farming_quality_ica_view_tree">
<field name="model">farming.quality.ica</field>
<field name="type">tree</field>
<field name="priority">10</field>
<field name="name">quality_ica_tree</field>
</record>
<record model="ir.ui.view" id="farming_quality_ica_view_form">
<field name="model">farming.quality.ica</field>
<field name="type">form</field>
<field name="name">quality_ica_form</field>
</record>
<record model="ir.action.act_window" id="act_farming_quality_ica_tree">
<field name="name">ICA Certificate</field>
<field name="res_model">farming.quality.ica</field>
</record>
<record model="ir.action.act_window.view" id="act_farming_quality_ica_tree_view1">
<field name="sequence" eval="1"/>
<field name="view" ref="farming_quality_ica_view_tree"/>
<field name="act_window" ref="act_farming_quality_ica_tree"/>
</record>
<record model="ir.action.act_window.view" id="act_farming_quality_ica_tree_view2">
<field name="sequence" eval="2"/>
<field name="view" ref="farming_quality_ica_view_form"/>
<field name="act_window" ref="act_farming_quality_ica_tree"/>
</record>
<menuitem parent="farming.menu_farming" sequence="1"
action="act_farming_quality_ica_tree" id="menu_farming_quality_ica_tree"/>
<record model="ir.model.access" id="access_farming_quality_ica">
<field name="model" search="[('model', '=', 'farming.quality.ica')]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.model.access" id="access_farming_quality_ica_admin">
<field name="model" search="[('model', '=', 'farming.quality.ica')]"/>
<field name="group" ref="farming.group_farming_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
</data>
</tryton>

View File

@ -1,13 +1,16 @@
[tryton]
version=6.0.0
version=6.0.1
depends:
party
company
product
stock
account_invoice
production
xml:
farming.xml
configuration.xml
location.xml
production.xml
quality.xml
purchase.xml

View File

@ -4,4 +4,6 @@ this repository contains the full copyright notices and license terms. -->
<form>
<label name="name"/>
<field name="name"/>
<label name="activity_time"/>
<field name="activity_time"/>
</form>

View File

@ -3,4 +3,5 @@
this repository contains the full copyright notices and license terms. -->
<tree>
<field name="name"/>
<field name="activity_time"/>
</tree>

View File

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form>
<label name="name"/>
<field name="name"/>
<label name="area"/>
<field name="area"/>
</form>

View File

@ -0,0 +1,7 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree>
<field name="name"/>
<field name="area"/>
</tree>

9
view/purchase_form.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="/form/field[@name='reference']" position="after">
<label name="ica_certicate"/>
<field name="ica_certicate"/>
</xpath>
</data>

View File

@ -0,0 +1,7 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form>
<label name="name"/>
<field name="name"/>
</form>

View File

@ -0,0 +1,6 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree>
<field name="name"/>
</tree>

19
view/quality_ica_form.xml Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form>
<label name="number"/>
<field name="number"/>
<label name="party"/>
<field name="party"/>
<label name="issue_date"/>
<field name="issue_date"/>
<label name="expiration_date"/>
<field name="expiration_date"/>
<label name="farm"/>
<field name="farm"/>
<label name="location"/>
<field name="location"/>
<field name="growing_products" colspan="4"/>
<field name="species" colspan="4"/>
</form>

11
view/quality_ica_tree.xml Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tree>
<field name="number"/>
<field name="party"/>
<field name="issue_date"/>
<field name="expiration_date"/>
<field name="farm"/>
<field name="location"/>
</tree>