Public release from ruodoo-project: 19.0 - 2026-05-31 21:19:12 UTC
This commit is contained in:
3
mklab_base_indicators_extended/wizard/__init__.py
Normal file
3
mklab_base_indicators_extended/wizard/__init__.py
Normal file
@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import estimate_wizard
|
||||
45
mklab_base_indicators_extended/wizard/estimate_wizard.py
Normal file
45
mklab_base_indicators_extended/wizard/estimate_wizard.py
Normal file
@ -0,0 +1,45 @@
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class EstimateWizard(models.Model):
|
||||
_name = "estimate.wizard"
|
||||
|
||||
template_id = fields.Many2one(comodel_name='hg.templates', string='Шаблон сметы', required=True)
|
||||
code_id = fields.Many2one(comodel_name='hg.index.code', string='Код показателей', required=True)
|
||||
|
||||
def confirm_action(self):
|
||||
self.ensure_one()
|
||||
task = self.env.context.get('active_id') and self.env['project.task'].browse(self.env.context['active_id'])
|
||||
if not task:
|
||||
return
|
||||
for line in self.template_id.line_ids:
|
||||
node = self._get_node(res_model='project.task', res_id=task.id, name=task.name)
|
||||
index = self.env['hg.index'].create({
|
||||
'node_id': node.id,
|
||||
'name': line.index_id.name,
|
||||
'internal_code_id': self.code_id.id,
|
||||
})
|
||||
self.env['hg.value'].create({
|
||||
'index_id': index.id,
|
||||
'type': 'alone',
|
||||
'date_due': line.date_due,
|
||||
'value_float_plan': line.value_float_plan,
|
||||
})
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
|
||||
def _get_node(self, res_model, res_id, name):
|
||||
Node = self.env['hg.node']
|
||||
|
||||
node = Node.search([
|
||||
('res_model', '=', res_model),
|
||||
('res_id', '=', res_id)
|
||||
], limit=1)
|
||||
|
||||
if not node:
|
||||
node = Node.create({
|
||||
'name': name,
|
||||
'res_model': 'project.task',
|
||||
'res_id': res_id,
|
||||
})
|
||||
return node
|
||||
18
mklab_base_indicators_extended/wizard/estimate_wizard.xml
Normal file
18
mklab_base_indicators_extended/wizard/estimate_wizard.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<odoo>
|
||||
<record id="wizard_estimate_form" model="ir.ui.view">
|
||||
<field name="name">wizard.estimate.form</field>
|
||||
<field name="model">estimate.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<group>
|
||||
<field name="template_id"/>
|
||||
<field name="code_id"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button name="confirm_action" string="Подтвердить" class="btn-primary" type="object" />
|
||||
<button name="cancel" string="Отмена" special="cancel" />
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user