Skip to content

Commit f17242a

Browse files
committed
[IMP] vineyard: clean up code
1 parent 7daa02b commit f17242a

23 files changed

+77
-407
lines changed

vineyard/__manifest__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,13 @@
1111
'excise_management',
1212
'hr_sign',
1313
'industry_fsm_sale_report',
14-
'industry_fsm_stock',
1514
'knowledge',
1615
'mrp_plm',
1716
'pos_enterprise',
1817
'product_expiry',
1918
'project_purchase',
2019
'quality_mrp',
2120
'sale_planning',
22-
'web_studio',
2321
'website_appointment_sale_project',
2422
],
2523
'data': [

vineyard/data/base_automation.xml

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,11 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo>
3-
<record id="industry_on_harvest_base_automation_1" model="base.automation">
4-
<field name="model_id" ref="mrp.model_mrp_production"/>
5-
<field name="action_server_ids" eval="[(6, 0, [ref('industry_harvest_and_transfer_server_action')])]"/>
6-
<field name="trigger">on_create_or_write</field>
7-
<field name="filter_domain">[("state", "=", "done")]</field>
8-
<field name="filter_pre_domain" eval="[('picking_type_id', 'in', [ref('vineyard.stock_picking_type_27')]), ('state', 'in', ['confirmed'])]"/>
9-
<field name="name">On harvest</field>
10-
<field name="trigger_field_ids" eval="[(6, 0, [ref('mrp.field_mrp_production__state')])]"/>
11-
</record>
123
<record id="industry_on_harvest_base_automation_2" model="base.automation">
134
<field name="model_id" ref="stock.model_stock_picking"/>
145
<field name="action_server_ids" eval="[(6, 0, [ref('industry_check_harvest_is_from_harvest_location_server_action')])]"/>
156
<field name="trigger">on_create_or_write</field>
16-
<field name="filter_domain">[]</field>
177
<field name="filter_pre_domain">["&amp;", ("picking_type_id.x_is_harvest", "!=", False), ("state", "not in", ["done", "cancel"])]</field>
188
<field name="name">On Harvest Validation</field>
199
<field name="trigger_field_ids" eval="[(6, 0, [ref('stock.field_stock_picking__state')])]"/>
2010
</record>
21-
<record id="industry_on_harvest_base_automation_3" model="base.automation">
22-
<field name="model_id" ref="stock.model_stock_picking"/>
23-
<field name="action_server_ids" eval="[(6, 0, [ref('industry_create_lot_on_validation_server_action')])]"/>
24-
<field name="trigger">on_write</field>
25-
<field name="filter_domain">[]</field>
26-
<field name="filter_pre_domain">["&amp;", ("picking_type_id.x_is_harvest", "!=", False), ("state", "not in", ["done", "cancel"])]</field>
27-
<field name="name">Auto Assign Serial on Validation</field>
28-
<field name="trigger_field_ids" eval="[(6, 0, [ref('stock.field_stock_picking__state')])]"/>
29-
</record>
3011
</odoo>

vineyard/data/ir_actions_act_window.xml

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo>
33
<record id="harvests_action_act_window_1" model="ir.actions.act_window">
4+
<field name="name">Harvests</field>
5+
<field name="res_model">stock.picking</field>
6+
<field name="view_mode">list,form</field>
47
<field name="domain">[("x_is_harvest", "!=", False)]</field>
58
<field name="context" eval="{
6-
'default_picking_type_id': ref('vineyard.stock_picking_type_27'),
7-
'default_x_is_harvest': True
8-
}"/>
9+
'default_picking_type_id': ref('vineyard.stock_picking_type_27'),
10+
'default_x_is_harvest': True
11+
}" />
912
<field name="help"><![CDATA[<p class="o_view_nocontent_smiling_face">
1013
This is your new action.
1114
</p>
@@ -17,9 +20,6 @@
1720
top right corner (you can also customize this help message there).
1821
</p>
1922
]]></field>
20-
<field name="name">Harvests</field>
21-
<field name="res_model">stock.picking</field>
22-
<field name="view_mode">list,form</field>
2323
</record>
2424
<record id="harvests_action_act_window_2" model="ir.actions.act_window">
2525
<field name="name">Harvests</field>
@@ -35,7 +35,7 @@
3535
'graph_stacked': False,
3636
'graph_cumulated': False
3737
}</field>
38-
<field name="domain">["&amp;", ("location_id.x_harvest_location", "!=", False), ("picking_id.x_is_harvest", "!=", False),("state", "=", "done")]</field>
38+
<field name="domain">["&amp;", ("location_id.x_is_harvest", "!=", False), ("picking_id.x_is_harvest", "!=", False),("state", "=", "done")]</field>
3939
<field name="help"><![CDATA[<p class="o_view_nocontent_smiling_face">
4040
This is your new action.
4141
</p>
@@ -49,7 +49,6 @@
4949
]]></field>
5050
</record>
5151
<record id="quality_check_tests_action_window" model="ir.actions.act_window">
52-
<!-- <field name="context">{'default_x_recipe_iteration': active_id}</field> -->
5352
<field name="context">{}</field>
5453
<field name="domain">[('x_recipe_iteration', '=', active_id)]</field>
5554
<field name="name">Tests</field>
Lines changed: 12 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -1,107 +1,21 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo>
3-
<record id="industry_harvest_and_transfer_server_action" model="ir.actions.server">
4-
<field name="code"><![CDATA[dest_location = env['stock.location'].search([('complete_name', '=', 'WH/Stock')], limit=1)
5-
if not dest_location:
6-
raise UserError("Destination location not found (WH/Stock).")
7-
8-
# Confirm harvest
9-
record.action_confirm()
10-
11-
# Match inputs and set as done
12-
record['qty_producing'] = record.product_qty
13-
record.action_generate_serial()
14-
record.button_mark_done()
15-
16-
# Create a picking
17-
picking = env['stock.picking'].create({
18-
'picking_type_id': env.ref('stock.picking_type_internal').id,
19-
'location_id': record.location_dest_id.id,
20-
'location_dest_id': dest_location.id,
21-
'origin': record.name,
22-
'move_type': 'direct',
23-
})
24-
25-
# Add stock moves for the finished products
26-
for move in record.move_finished_ids.filtered(lambda m: m.product_id.type == 'product'):
27-
env['stock.move'].create({
28-
'name': move.product_id.display_name,
29-
'product_id': move.product_id.id,
30-
'product_uom_qty': move.quantity_done,
31-
'product_uom': move.product_uom.id,
32-
'location_id': record.location_dest_id.id,
33-
'location_dest_id': dest_location.id,
34-
'picking_id': picking.id,
35-
})
36-
37-
# Confirm, assign and validate the picking
38-
picking.action_confirm()
39-
picking.action_assign()
40-
picking.button_validate()
41-
42-
43-
]]></field>
44-
<field name="model_id" ref="mrp.model_mrp_production"/>
45-
<field name="state">code</field>
46-
<field name="name">Harvest and transfer</field>
47-
<field name="usage">base_automation</field>
48-
</record>
493
<record id="industry_check_harvest_is_from_harvest_location_server_action" model="ir.actions.server">
50-
<field name="code"><![CDATA[if record.picking_type_id.x_is_harvest and not record.location_id.x_harvest_location:
51-
raise UserError ("Source location shall be eligible for harvest.")]]></field>
52-
<field name="model_id" ref="stock.model_stock_picking"/>
53-
<field name="state">code</field>
544
<field name="name">Check Harvest Is From Harvest Location</field>
5+
<field name="model_id" ref="stock.model_stock_picking"/>
556
<field name="usage">base_automation</field>
56-
</record>
57-
<record id="industry_create_lot_on_validation_server_action" model="ir.actions.server">
58-
<field name="code"><![CDATA[
7+
<field name="state">code</field>
8+
<field name="code"><![CDATA[if record.picking_type_id.x_is_harvest and not record.location_id.x_is_harvest:
9+
raise UserError ("Source location shall be eligible for harvest.")
5910
for picking in records:
60-
for ml in picking.move_line_ids:
61-
product = ml.product_id
62-
63-
if not product or product.tracking != 'lot':
64-
continue
65-
66-
if not ml.lot_id:
67-
serial = env['ir.sequence'].next_by_code('auto.lot.serial')
68-
lot = env['stock.lot'].create({
69-
'name': serial,
70-
'product_id': product.id,
71-
'company_id': picking.company_id.id,
72-
})
73-
ml.write({'lot_id': lot.id})
11+
for ml in picking.move_line_ids.filtered(lambda line: line.product_id and line.product_id.tracking == 'lot' and not line.lot_id):
12+
serial = env['ir.sequence'].next_by_code('auto.lot.serial')
13+
lot = env['stock.lot'].create({
14+
'name': serial,
15+
'product_id': ml.product_id.id,
16+
'company_id': picking.company_id.id,
17+
})
18+
ml.write({'lot_id': lot.id})
7419
]]></field>
75-
<!-- <field name="code"><![CDATA[
76-
generated_serial = env['ir.sequence'].next_by_code('auto.lot.serial')
77-
prefix = generated_serial.split('-')[0] + '-'
78-
existing_lots = set(
79-
env['stock.lot'].search([
80-
('name', 'like', prefix + '%')
81-
]).mapped('name')
82-
)
83-
84-
for picking in records:
85-
for ml in picking.move_line_ids:
86-
product = ml.product_id
87-
if not product or product.tracking != 'lot':
88-
continue
89-
90-
if not ml.lot_id:
91-
serial = generated_serial
92-
while serial in existing_lots:
93-
serial = env['ir.sequence'].next_by_code('auto.lot.serial')
94-
95-
lot = env['stock.lot'].create({
96-
'name': serial,
97-
'product_id': product.id,
98-
'company_id': picking.company_id.id,
99-
})
100-
ml.write({'lot_id': lot.id})
101-
]]></field> -->
102-
<field name="model_id" ref="stock.model_stock_picking"/>
103-
<field name="state">code</field>
104-
<field name="name">Action for Assign Serial</field>
105-
<field name="usage">base_automation</field>
10620
</record>
10721
</odoo>

vineyard/data/ir_model_access.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo>
3-
<record id="x_project_task_worksheet_template_1_ir_model_access_2" model="ir.model.access" forcecreate="1">
3+
<record id="x_project_task_worksheet_template_1_ir_model_access_2" model="ir.model.access">
44
<field name="group_id" ref="project.group_project_user"/>
55
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
66
<field name="name">x_project_task_worksheet_template_1_user_access</field>
@@ -9,7 +9,7 @@
99
<field name="perm_unlink" eval="True"/>
1010
<field name="perm_write" eval="True"/>
1111
</record>
12-
<record id="x_project_task_worksheet_template_1_ir_model_access_1" model="ir.model.access" forcecreate="1">
12+
<record id="x_project_task_worksheet_template_1_ir_model_access_1" model="ir.model.access">
1313
<field name="group_id" ref="project.group_project_manager"/>
1414
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
1515
<field name="name">x_project_task_worksheet_template_1_manager_access</field>

vineyard/data/ir_model_fields.xml

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo>
3-
<record id="stock_model_stock_location_x_harvest_location_field" model="ir.model.fields">
3+
<record id="stock_location_is_harvest" model="ir.model.fields">
44
<field name="ttype">boolean</field>
55
<field name="copied" eval="True"/>
66
<field name="field_description">Harvest Location</field>
77
<field name="model_id" ref="stock.model_stock_location"/>
8-
<field name="name">x_harvest_location</field>
9-
</record>
10-
<record id="stock_model_stock_picking_type_x_is_harvest_field" model="ir.model.fields">
8+
<field name="name">x_is_harvest</field>
9+
</record>
10+
<record id="stock_picking_type_is_harvest" model="ir.model.fields">
1111
<field name="ttype">boolean</field>
1212
<field name="copied" eval="True"/>
1313
<field name="field_description">Is Harvest</field>
1414
<field name="model_id" ref="stock.model_stock_picking_type"/>
1515
<field name="name">x_is_harvest</field>
16-
</record>
17-
<record id="stock_model_stock_picking_x_is_harvest_field" model="ir.model.fields">
16+
</record>
17+
<record id="stock_picking_is_harvest" model="ir.model.fields">
1818
<field name="ttype">boolean</field>
1919
<field name="related">picking_type_id.x_is_harvest</field>
2020
<field name="field_description">Is Harvest</field>
@@ -23,26 +23,28 @@
2323
<field name="readonly" eval="True"/>
2424
<field name="store" eval="False"/>
2525
</record>
26-
<record id="quality_model_quality_check_x_recipe_iteration_field" model="ir.model.fields">
26+
<record id="quality_check_recipe_iteration" model="ir.model.fields">
2727
<field name="ttype">many2one</field>
2828
<field name="copied" eval="True"/>
2929
<field name="field_description">Recipe Iteration</field>
3030
<field name="model_id" ref="quality.model_quality_check"/>
3131
<field name="name">x_recipe_iteration</field>
3232
<field name="relation">mrp.eco</field>
3333
</record>
34-
<record id="mrp_plm_model_mrp_eco_x_recipe_iteration_quality_check_count_field" model="ir.model.fields">
35-
<field name="compute"><![CDATA[
36-
for record in self: record['x_recipe_iteration_quality_check_count'] = self.env['quality.check'].search_count([('x_recipe_iteration', '=', record.id)])
37-
]]></field>
34+
<record id="mrp_eco_recipe_iteration_quality_check_count" model="ir.model.fields">
3835
<field name="ttype">integer</field>
3936
<field name="field_description">Recipe Iteration count</field>
4037
<field name="model_id" ref="mrp_plm.model_mrp_eco"/>
4138
<field name="name">x_recipe_iteration_quality_check_count</field>
4239
<field name="selectable" eval="False"/>
4340
<field name="store" eval="False"/>
41+
<field name="compute"><![CDATA[
42+
check_data = self.env['quality.check']._read_group(domain=[('x_recipe_iteration', 'in', self.ids)], groupby=['x_recipe_iteration'], aggregates=['__count'])
43+
mapped_data = {eco.id: count for eco, count in check_data}
44+
for eco in self: eco['x_recipe_iteration_quality_check_count'] = mapped_data.get(eco.id, 0)
45+
]]></field>
4446
</record>
45-
<record id="quality_model_quality_check_x_control_point_title_field" model="ir.model.fields">
47+
<record id="quality_check_control_point_title" model="ir.model.fields">
4648
<field name="ttype">char</field>
4749
<field name="related">point_id.title</field>
4850
<field name="field_description">Control Point Title</field>
@@ -51,14 +53,14 @@ for record in self: record['x_recipe_iteration_quality_check_count'] = self.env[
5153
<field name="readonly" eval="True"/>
5254
<field name="store" eval="False"/>
5355
</record>
54-
<record id="x_project_task_worksheet_template_1_ir_model_fields_7" model="ir.model.fields" forcecreate="1">
56+
<record id="project_task_worksheet_template_1_ir_model_1_comments" model="ir.model.fields" forcecreate="1">
5557
<field name="ttype">html</field>
5658
<field name="copied" eval="True"/>
5759
<field name="field_description">Comments</field>
5860
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
5961
<field name="name">x_comments</field>
60-
</record>
61-
<record id="x_project_task_worksheet_template_1_ir_model_fields_9" model="ir.model.fields" forcecreate="1">
62+
</record>
63+
<record id="project_task_worksheet_template_1_ir_model_1_project_task_id" model="ir.model.fields" forcecreate="1">
6264
<field name="ttype">many2one</field>
6365
<field name="copied" eval="True"/>
6466
<field name="field_description">Task</field>
@@ -68,11 +70,11 @@ for record in self: record['x_recipe_iteration_quality_check_count'] = self.env[
6870
<field name="relation">project.task</field>
6971
<field name="required" eval="True"/>
7072
</record>
71-
<record id="x_project_task_worksheet_template_1_ir_model_fields_8" model="ir.model.fields" forcecreate="1">
73+
<record id="project_task_worksheet_template_1_ir_model_1_name" model="ir.model.fields" forcecreate="1">
7274
<field name="ttype">char</field>
7375
<field name="related">x_project_task_id.name</field>
7476
<field name="field_description">Name</field>
7577
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
7678
<field name="name">x_name</field>
77-
</record>
79+
</record>
7880
</odoo>

vineyard/data/ir_rule.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<odoo noupdate="1">
3-
<record id="x_project_task_worksheet_template_1_ir_rule_1" model="ir.rule" forcecreate="1">
3+
<record id="x_project_task_worksheet_template_1_ir_rule_1" model="ir.rule">
44
<field name="domain_force"><![CDATA[[('create_uid', '=', user.id)]]]></field>
55
<field name="groups" eval="[(6, 0, [ref('project.group_project_user')])]"/>
66
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
77
<field name="name">x_project_task_worksheet_template_1_own</field>
88
</record>
9-
<record id="x_project_task_worksheet_template_1_ir_rule_2" model="ir.rule" forcecreate="1">
10-
<field name="domain_force"><![CDATA[[(1, '=', 1)]]]></field>
9+
<record id="x_project_task_worksheet_template_1_ir_rule_2" model="ir.rule">
10+
<field name="domain_force">[]</field>
1111
<field name="groups" eval="[(6, 0, [ref('project.group_project_manager'), ref('industry_fsm.group_fsm_user')])]"/>
1212
<field name="model_id" ref="x_project_task_worksheet_template_1_ir_model_1"/>
1313
<field name="name">x_project_task_worksheet_template_1_all</field>

0 commit comments

Comments
 (0)