Add ica
This commit is contained in:
parent
5acbceab52
commit
18dda707b0
|
@ -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')
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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))
|
||||
# ])
|
|
@ -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>
|
|
@ -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)
|
|
@ -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>
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -3,4 +3,5 @@
|
|||
this repository contains the full copyright notices and license terms. -->
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="activity_time"/>
|
||||
</tree>
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
Loading…
Reference in New Issue