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 @@ -451,6 +451,11 @@
"filemask": "toy_store/i18n/*.po",
"new_base": "toy_store/i18n/toy_store.pot"
},
{
"name": "vineyard",
"filemask": "vineyard/i18n/*.po",
"new_base": "vineyard/i18n/vineyard.pot"
},
{
"name": "wedding_planner",
"filemask": "wedding_planner/i18n/*.po",
Expand Down
92 changes: 92 additions & 0 deletions vineyard/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{
'name': 'Vineyard',
'version': '1.0',
'category': 'Supply Chain',
'author': 'Odoo S.A.',
'depends': [
'appointment_crm',
'appointment_google_calendar',
'appointment_hr',
'base_industry_data',
'excise_management',
'hr_sign',
'industry_fsm_sale_report',
'industry_fsm_stock',
'knowledge',
'mrp_plm',
'pos_enterprise',
'product_expiry',
'project_purchase',
'quality_mrp',
'sale_planning',
'web_studio',
'website_appointment_sale_project',
],
'data': [
'data/res_config_setting.xml',
'data/stock_warehouse.xml',
'data/ir_model.xml',
'data/ir_model_fields.xml',
'data/stock_location.xml',
'data/stock_picking_type.xml',
'data/ir_actions_act_window.xml',
'data/ir_ui_view.xml',
'data/ir_actions_server.xml',
'data/ir_ui_menu.xml',
'data/ir_model_access.xml',
'data/ir_rule.xml',
'data/ir_sequence.xml',
'data/knowledge_article.xml',
'data/pos_category.xml',
'data/uom_uom.xml',
'data/product_category.xml',
'data/product_template.xml',
'data/product_product.xml',
'data/product_tag.xml',
'data/pos_config.xml',
'data/mrp_bom.xml',
'data/mrp_bom_line.xml',
'data/base_automation.xml',
'data/mail_message.xml',
'data/knowledge_article_favorite.xml',
'data/website_menu.xml',
],
'demo': [
'demo/product_template.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/purchase_order_post.xml',
'demo/account_analytic_account.xml',
'demo/crm_lead.xml',
'demo/project_project.xml',
'demo/stock_picking.xml',
'demo/stock_move.xml',
'demo/stock_picking_post.xml',
'demo/mrp_production.xml',
'demo/mrp_eco.xml',
'demo/ir_attachment_post.xml',
'demo/project_tags.xml',
'demo/project_task.xml',
'demo/quality_point.xml',
'demo/quality_check.xml',
'demo/product_supplierinfo.xml',
'demo/spreadsheet_dashboard.xml',
'demo/payment_provider_demo.xml',
'demo/website_theme_apply.xml',
'demo/website_view.xml',
'demo/website.xml',
],
'license': 'OPL-1',
'cloc_exclude': [
'data/knowledge_article.xml',
'data/ir_actions_server.xml',
'demo/website_view.xml',
],
'images': [
'images/main.png',
],
}
21 changes: 21 additions & 0 deletions vineyard/data/base_automation.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="industry_on_harvest_base_automation_1" model="base.automation">
<field name="model_id" ref="mrp.model_mrp_production"/>
<field name="action_server_ids" eval="[(6, 0, [ref('industry_harvest_and_transfer_server_action')])]"/>
<field name="trigger">on_create_or_write</field>
<field name="filter_domain">[("state", "=", "done")]</field>
<field name="filter_pre_domain" eval="[('picking_type_id', 'in', [ref('vineyard.stock_picking_type_27')]), ('state', 'in', ['confirmed'])]"/>
<field name="name">On harvest</field>
<field name="trigger_field_ids" eval="[(6, 0, [ref('mrp.field_mrp_production__state')])]"/>
</record>
<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">[]</field>
<field name="filter_pre_domain">["&amp;", ("picking_type_id.x_is_harvest", "!=", False), ("state", "not in", ["done", "cancel"])]</field>
<field name="name">On Harvest Validation</field>
<field name="trigger_field_ids" eval="[(6, 0, [ref('stock.field_stock_picking__state')])]"/>
</record>
</odoo>
47 changes: 47 additions & 0 deletions vineyard/data/ir_actions_act_window.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="harvests_action_act_window_1" model="ir.actions.act_window">
<field name="domain">[("x_is_harvest", "!=", False)]</field>
<field name="context" eval="{
'default_picking_type_id': ref('vineyard.stock_picking_type_27'),
'default_x_is_harvest': True
}"/>
<field name="help"><![CDATA[<p class="o_view_nocontent_smiling_face">
This is your new action.
</p>
<p>By default, it contains a list and a form view and possibly
other view types depending on the options you chose for your model.
</p>
<p>
You can start customizing these screens by clicking on the Studio icon on the
top right corner (you can also customize this help message there).
</p>
]]></field>
<field name="name">Harvests</field>
<field name="res_model">stock.picking</field>
<field name="view_mode">list,form</field>
</record>
<record id="harvests_action_act_window_2" model="ir.actions.act_window">
<field name="domain">["&amp;", ("location_id.x_harvest_location", "!=", False), ("picking_id.x_is_harvest", "!=", False),("state", "=", "done")]</field>
<field name="help"><![CDATA[<p class="o_view_nocontent_smiling_face">
This is your new action.
</p>
<p>By default, it contains a list and a form view and possibly
other view types depending on the options you chose for your model.
</p>
<p>
You can start customizing these screens by clicking on the Studio icon on the
top right corner (you can also customize this help message there).
</p>
]]></field>
<field name="name">Harvests</field>
<field name="res_model">stock.move</field>
<field name="view_mode">graph,pivot,list,form</field>
</record>
<record id="quality_check_tests_action_window" model="ir.actions.act_window">
<field name="context">{'search_default_x_recipe_iteration': active_id,'default_x_recipe_iteration': active_id}</field>
<field name="domain">[('x_recipe_iteration', '=', active_id)]</field>
<field name="name">Tests</field>
<field name="res_model">quality.check</field>
</record>
</odoo>
57 changes: 57 additions & 0 deletions vineyard/data/ir_actions_server.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="industry_harvest_and_transfer_server_action" model="ir.actions.server">
<field name="code"><![CDATA[dest_location = env['stock.location'].search([('complete_name', '=', 'WH/Stock')], limit=1)
if not dest_location:
raise UserError("Destination location not found (WH/Stock).")

# Confirm harvest
record.action_confirm()

# Match inputs and set as done
record['qty_producing'] = record.product_qty
record.action_generate_serial()
record.button_mark_done()

# Create a picking
picking = env['stock.picking'].create({
'picking_type_id': env.ref('stock.picking_type_internal').id,
'location_id': record.location_dest_id.id,
'location_dest_id': dest_location.id,
'origin': record.name,
'move_type': 'direct',
})

# Add stock moves for the finished products
for move in record.move_finished_ids.filtered(lambda m: m.product_id.type == 'product'):
env['stock.move'].create({
'name': move.product_id.display_name,
'product_id': move.product_id.id,
'product_uom_qty': move.quantity_done,
'product_uom': move.product_uom.id,
'location_id': record.location_dest_id.id,
'location_dest_id': dest_location.id,
'picking_id': picking.id,
})

# Confirm, assign and validate the picking
picking.action_confirm()
picking.action_assign()
picking.button_validate()


]]></field>
<field name="model_id" ref="mrp.model_mrp_production"/>
<field name="state">code</field>
<field name="name">Harvest and transfer</field>
<field name="usage">base_automation</field>
</record>
<record id="industry_check_harvest_is_from_harvest_location_server_action" model="ir.actions.server">
<field name="code"><![CDATA[if record.picking_type_id.x_is_harvest and not record.location_id.x_harvest_location:
raise UserError ("Source location shall be eligible for harvest.")]]></field>
<field name="model_id" ref="stock.model_stock_picking"/>
<field name="state">code</field>
<field name="name">Check Harvest Is From Harvest Location</field>
<field name="usage">base_automation</field>
</record>
</odoo>
7 changes: 7 additions & 0 deletions vineyard/data/ir_model.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="x_project_task_worksheet_template_1_ir_model_1" model="ir.model" forcecreate="1">
<field name="model">x_project_task_worksheet_template_1_studio</field>
<field name="name">Default Worksheet</field>
</record>
</odoo>
21 changes: 21 additions & 0 deletions vineyard/data/ir_model_access.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="x_project_task_worksheet_template_1_ir_model_access_2" model="ir.model.access" forcecreate="1">
<field name="group_id" ref="project.group_project_user"/>
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
<field name="name">x_project_task_worksheet_template_1_user_access</field>
<field name="perm_create" eval="True"/>
<field name="perm_read" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record id="x_project_task_worksheet_template_1_ir_model_access_1" model="ir.model.access" forcecreate="1">
<field name="group_id" ref="project.group_project_manager"/>
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
<field name="name">x_project_task_worksheet_template_1_manager_access</field>
<field name="perm_create" eval="True"/>
<field name="perm_read" eval="True"/>
<field name="perm_unlink" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
</odoo>
78 changes: 78 additions & 0 deletions vineyard/data/ir_model_fields.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="stock_model_stock_location_x_harvest_location_field" 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_harvest_location</field>
</record>
<record id="stock_model_stock_picking_type_x_is_harvest_field" 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_model_stock_picking_x_is_harvest_field" 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_model_quality_check_x_recipe_iteration_field" 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_plm_model_mrp_eco_x_recipe_iteration_quality_check_count_field" model="ir.model.fields">
<field name="compute"><![CDATA[
for record in self: record['x_recipe_iteration_quality_check_count'] = self.env['quality.check'].search_count([('production_id', '=', record.id)])
]]></field>
<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"/>
</record>
<record id="quality_model_quality_check_x_control_point_title_field" 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>
<record id="x_project_task_worksheet_template_1_ir_model_fields_7" model="ir.model.fields" forcecreate="1">
<field name="ttype">html</field>
<field name="copied" eval="True"/>
<field name="field_description">Comments</field>
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
<field name="name">x_comments</field>
</record>
<record id="x_project_task_worksheet_template_1_ir_model_fields_9" model="ir.model.fields" forcecreate="1">
<field name="ttype">many2one</field>
<field name="copied" eval="True"/>
<field name="field_description">Task</field>
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
<field name="name">x_project_task_id</field>
<field name="on_delete">cascade</field>
<field name="relation">project.task</field>
<field name="required" eval="True"/>
</record>
<record id="x_project_task_worksheet_template_1_ir_model_fields_8" model="ir.model.fields" forcecreate="1">
<field name="ttype">char</field>
<field name="related">x_project_task_id.name</field>
<field name="field_description">Name</field>
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
<field name="name">x_name</field>
</record>
</odoo>
15 changes: 15 additions & 0 deletions vineyard/data/ir_rule.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="x_project_task_worksheet_template_1_ir_rule_1" model="ir.rule" forcecreate="1">
<field name="domain_force"><![CDATA[[('create_uid', '=', user.id)]]]></field>
<field name="groups" eval="[(6, 0, [ref('project.group_project_user')])]"/>
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
<field name="name">x_project_task_worksheet_template_1_own</field>
</record>
<record id="x_project_task_worksheet_template_1_ir_rule_2" model="ir.rule" forcecreate="1">
<field name="domain_force"><![CDATA[[(1, '=', 1)]]]></field>
<field name="groups" eval="[(6, 0, [ref('project.group_project_manager'), ref('industry_fsm.group_fsm_user')])]"/>
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
<field name="name">x_project_task_worksheet_template_1_all</field>
</record>
</odoo>
11 changes: 11 additions & 0 deletions vineyard/data/ir_sequence.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="ir_sequence_46" model="ir.sequence">
<field name="name">Cabernet Franc Grapes Serial Sequence</field>
<field name="code">stock.lot.serial</field>
<field name="prefix">%(y)s%(month)s%(day)s-</field>
<field name="number_next">37</field>
<field name="padding">7</field>
<field name="company_id" eval="False"/>
</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