Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .weblate.json
Original file line number Diff line number Diff line change
Expand Up @@ -491,6 +491,11 @@
"filemask": "veterinary_clinic/i18n/*.po",
"new_base": "veterinary_clinic/i18n/veterinary_clinic.pot"
},
{
"name": "vineyard",
"filemask": "vineyard/i18n/*.po",
"new_base": "vineyard/i18n/vineyard.pot"
},
{
"name": "wedding_planner",
"filemask": "wedding_planner/i18n/*.po",
Expand Down
Empty file added vineyard/__init__.py
Empty file.
88 changes: 88 additions & 0 deletions vineyard/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
{
'name': 'Vineyard',
'version': '1.0',
'category': 'Supply Chain',
'author': 'Odoo S.A.',
'depends': [
'base_industry_data',
'crm',
'excise_management',
'industry_fsm_sale_report',
'knowledge',
'mrp_plm',
'pos_enterprise',
'product_expiry',
'purchase',
'quality_mrp',
'web_studio',
'website_appointment_sale_project',
],
'data': [
'data/res_config_setting.xml',
'data/stock_warehouse.xml',
'data/ir_sequence.xml',
'data/ir_model_fields.xml',
'data/stock_location.xml',
'data/stock_picking_type.xml',
'data/mrp_eco_stage.xml',
'data/ir_ui_view.xml',
'data/ir_actions_act_window.xml',
'data/ir_actions_server.xml',
'data/ir_ui_menu.xml',
'data/knowledge_article.xml',
'data/pos_category.xml',
'data/uom_uom.xml',
'data/product_category.xml',
# 'data/product_template.xml',
'data/product_tag.xml',
'data/product_product.xml',
'data/pos_config.xml',
'data/mrp_bom_byproduct.xml',
'data/mrp_bom.xml',
'data/mrp_bom_line.xml',
'data/base_automation.xml',
'data/mail_message.xml',
'data/knowledge_article_favorite.xml',
],
'demo': [
'demo/product_product.xml',
'demo/appointment_type.xml',
'demo/crm_tag.xml',
'demo/res_partner.xml',
'demo/stock_lot.xml',
'demo/purchase_order.xml',
'demo/purchase_order_line.xml',
'demo/crm_lead.xml',
'demo/stock_picking.xml',
'demo/stock_move.xml',
'demo/mrp_production.xml',
'demo/mrp_eco.xml',
'demo/ir_attachment_post.xml',
'demo/project_project.xml',
'demo/project_tags.xml',
'demo/project_task.xml',
'demo/project_task_recurrence.xml',
'demo/project_task_post.xml',
'demo/quality_point.xml',
'demo/quality_check.xml',
'demo/product_supplierinfo.xml',
'demo/sale_order.xml',
'demo/sale_order_line.xml',
'demo/stock_picking_post.xml',
'demo/spreadsheet_dashboard.xml',
'demo/payment_provider_demo.xml',
'demo/website_theme_apply.xml',
'demo/website_view.xml',
'demo/website.xml',
],
'cloc_exclude': [
'data/knowledge_article.xml',
'demo/website_view.xml',
],
'images': [
'images/main.png',
],
'license': 'OPL-1',
'url': "https://www.odoo.com/trial?industry&selected_app=vineyard",
'website': "https://www.odoo.com/industries/vineyard",
}
11 changes: 11 additions & 0 deletions vineyard/data/base_automation.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="industry_on_harvest_base_automation_2" model="base.automation">
<field name="model_id" ref="stock.model_stock_picking"/>
<field name="action_server_ids" eval="[(6, 0, [ref('industry_check_harvest_is_from_harvest_location_server_action')])]"/>
<field name="trigger">on_create_or_write</field>
<field name="filter_domain">[("picking_type_id.x_is_harvest", "!=", False), ("state", "not in", ["done", "cancel"])]</field>
<field name="name">Vineyard: Harvest Validation</field>
<field name="trigger_field_ids" eval="[(6, 0, [ref('stock.field_stock_picking__state')])]"/>
</record>
</odoo>
33 changes: 33 additions & 0 deletions vineyard/data/ir_actions_act_window.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="harvests_action_act_window_1" model="ir.actions.act_window">
<field name="name">Harvests</field>
<field name="res_model">stock.picking</field>
<field name="view_mode">list,form</field>
<field name="domain">[("x_is_harvest", "!=", False)]</field>
<field name="context" eval="{
'default_picking_type_id': ref('stock_picking_type_27'),
'default_x_is_harvest': True
}" />
</record>
<record id="harvests_action_act_window_2" model="ir.actions.act_window">
<field name="name">Harvests</field>
<field name="res_model">stock.move</field>
<field name="view_mode">graph,pivot</field>
<field name="context">{
'search_default_groupby_date_year': 1,
'search_default_groupby_location_id': 2,
'pivot_row_groupby': ['location_id'],
'pivot_column_groupby': ['date:year'],
'graph_mode': 'line',
'graph_order': 'ASC',
'graph_stacked': False,
'graph_cumulated': False
}</field>
<field name="view_ids" eval="[
(5, 0, 0),
(0, 0, {'view_mode': 'graph', 'view_id': ref('stock_move_graph_view_inherit')}),
]"/>
<field name="domain">[("location_id.x_is_harvest", "!=", False), ("picking_id.x_is_harvest", "!=", False),("state", "=", "done")]</field>
</record>
</odoo>
22 changes: 22 additions & 0 deletions vineyard/data/ir_actions_server.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="industry_check_harvest_is_from_harvest_location_server_action" model="ir.actions.server">
<field name="name">Check Harvest Is From Harvest Location</field>
<field name="model_id" ref="stock.model_stock_picking"/>
<field name="usage">base_automation</field>
<field name="state">code</field>
<field name="code"><![CDATA[if record.picking_type_id.x_is_harvest and not record.location_id.x_is_harvest:
raise UserError ("Source location shall be eligible for harvest.")
for picking in records:
for ml in picking.move_line_ids:
if ml.product_id.tracking != 'lot' or ml.lot_id: continue
serial = env['ir.sequence'].next_by_code('auto.lot.serial')
lot = env['stock.lot'].create({
'name': serial,
'product_id': ml.product_id.id,
'company_id': picking.company_id.id,
})
ml.write({'lot_id': lot.id})
]]></field>
</record>
</odoo>
56 changes: 56 additions & 0 deletions vineyard/data/ir_model_fields.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="stock_location_is_harvest" model="ir.model.fields">
<field name="ttype">boolean</field>
<field name="copied" eval="True"/>
<field name="field_description">Harvest Location</field>
<field name="model_id" ref="stock.model_stock_location"/>
<field name="name">x_is_harvest</field>
</record>
<record id="stock_picking_type_is_harvest" model="ir.model.fields">
<field name="ttype">boolean</field>
<field name="copied" eval="True"/>
<field name="field_description">Is Harvest</field>
<field name="model_id" ref="stock.model_stock_picking_type"/>
<field name="name">x_is_harvest</field>
</record>
<record id="stock_picking_is_harvest" model="ir.model.fields">
<field name="ttype">boolean</field>
<field name="related">picking_type_id.x_is_harvest</field>
<field name="field_description">Is Harvest</field>
<field name="model_id" ref="stock.model_stock_picking"/>
<field name="name">x_is_harvest</field>
<field name="readonly" eval="True"/>
<field name="store" eval="False"/>
</record>
<record id="quality_check_recipe_iteration" model="ir.model.fields">
<field name="ttype">many2one</field>
<field name="copied" eval="True"/>
<field name="field_description">Recipe Iteration</field>
<field name="model_id" ref="quality.model_quality_check"/>
<field name="name">x_recipe_iteration</field>
<field name="relation">mrp.eco</field>
</record>
<record id="mrp_eco_recipe_iteration_quality_check_count" model="ir.model.fields">
<field name="ttype">integer</field>
<field name="field_description">Recipe Iteration count</field>
<field name="model_id" ref="mrp_plm.model_mrp_eco"/>
<field name="name">x_recipe_iteration_quality_check_count</field>
<field name="selectable" eval="False"/>
<field name="store" eval="False"/>
<field name="compute"><![CDATA[
check_data = self.env['quality.check']._read_group(domain=[('x_recipe_iteration', 'in', self.ids)], groupby=['x_recipe_iteration'], aggregates=['__count'])
mapped_data = {eco.id: count for eco, count in check_data}
for eco in self: eco['x_recipe_iteration_quality_check_count'] = mapped_data.get(eco.id, 0)
]]></field>
</record>
<record id="quality_check_control_point_title" model="ir.model.fields">
<field name="ttype">char</field>
<field name="related">point_id.title</field>
<field name="field_description">Control Point Title</field>
<field name="model_id" ref="quality.model_quality_check"/>
<field name="name">x_control_point_title</field>
<field name="readonly" eval="True"/>
<field name="store" eval="False"/>
</record>
</odoo>
9 changes: 9 additions & 0 deletions vineyard/data/ir_sequence.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="seq_auto_lot" model="ir.sequence">
<field name="name">Auto Lot Serial</field>
<field name="code">auto.lot.serial</field>
<field name="padding">5</field>
<field name="prefix">%(y)s%(month)s%(day)s-</field>
</record>
</odoo>
13 changes: 13 additions & 0 deletions vineyard/data/ir_ui_menu.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo auto_sequence="1">
<record id="inventory_harvests_ir_ui_menu_1" model="ir.ui.menu">
<field name="action" ref="harvests_action_act_window_1"/>
<field name="name">Harvests</field>
<field name="parent_id" ref="stock.menu_stock_transfers"/>
</record>
<record id="inventory_harvests_ir_ui_menu_2" model="ir.ui.menu">
<field name="action" ref="harvests_action_act_window_2"/>
<field name="name">Harvests</field>
<field name="parent_id" ref="stock.menu_warehouse_report"/>
</record>
</odoo>
Loading