Merge branch 'development' of http://103.74.223.20:8085/prakash.jain/cor-odoo into development
This commit is contained in:
commit
9e2d3d4131
|
@ -0,0 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
from . import report
|
||||
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
{
|
||||
'name': 'Project Maintanence',
|
||||
'summary': 'Projects Maintanence',
|
||||
'description': "",
|
||||
'version': '1.0',
|
||||
'license': 'LGPL-3',
|
||||
'category': 'Services/Project',
|
||||
'author': "SunArc Technologies",
|
||||
'website': "http://www.sunarctechnologies.com",
|
||||
'depends': [
|
||||
'base', 'project'
|
||||
],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'report/maintenance_report_views.xml',
|
||||
'views/maintenance_view.xml',
|
||||
'views/project_view.xml',
|
||||
],
|
||||
'auto_install': False,
|
||||
'installable': True,
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import maintenance
|
||||
from . import project
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
|
||||
class ProjectMainenenceType(models.Model):
|
||||
_name = 'project.maintenance.type'
|
||||
_description = "project Maintenance Type"
|
||||
|
||||
name = fields.Char('Maintenance Type', required=True, ondelete="restrict")
|
||||
maintenance_ids = fields.One2many('project.maintenance', 'maintenance_type_id', string='Maintenance', copy=False)
|
||||
|
||||
class ProjectMainenence(models.Model):
|
||||
_name = 'project.maintenance'
|
||||
_description = "project Maintenance"
|
||||
|
||||
name = fields.Char('Maintenance', required=True, ondelete="restrict")
|
||||
maintenance_type_id = fields.Many2one('project.maintenance.type', 'Manintenance Type', required=True, readonly=True, ondelete='cascade')
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
|
||||
|
||||
class Project(models.Model):
|
||||
_inherit = 'project.project'
|
||||
|
||||
maintenance_ids = fields.One2many('project.maintenance.details', 'project_id', string='Maintenance', copy=False)
|
||||
|
||||
|
||||
class ProjectMainenenceDetails(models.Model):
|
||||
_name = 'project.maintenance.details'
|
||||
_description = "project Maintenance Details"
|
||||
|
||||
@api.depends('line_ids')
|
||||
def _compute_amount(self):
|
||||
for val in self:
|
||||
total_cost = 0
|
||||
for line in val.line_ids:
|
||||
if line.cost:
|
||||
total_cost += line.cost
|
||||
val.total_amount = total_cost
|
||||
|
||||
project_id = fields.Many2one('project.project', 'Project', required=True, ondelete='cascade')
|
||||
maintenance_type_id = fields.Many2one('project.maintenance.type', 'Maintenance Type', required=True)
|
||||
currency_id = fields.Many2one('res.currency', string='Currency', readonly=True, default=lambda self: self.env.company.currency_id)
|
||||
total_amount = fields.Float("Total Amount", digits=(16, 2), compute='_compute_amount', store=True, currency_field='currency_id')
|
||||
line_ids = fields.One2many('project.maintenance.lines', 'details_id', string='Maintenance Details', copy=False)
|
||||
|
||||
class ProjectMainenencelines(models.Model):
|
||||
_name = 'project.maintenance.lines'
|
||||
_description = "project Maintenance Lines"
|
||||
|
||||
details_id = fields.Many2one('project.maintenance.details', 'Details', required=True, ondelete='cascade')
|
||||
maintenance_id = fields.Many2one('project.maintenance', 'Maintenance', required=True)
|
||||
currency_id = fields.Many2one('res.currency', string='Currency', readonly=True, default=lambda self: self.env.company.currency_id)
|
||||
cost = fields.Float("Cost", digits=(16, 2), currency_field='currency_id')
|
|
@ -0,0 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import maintenance_report
|
|
@ -0,0 +1,35 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models, tools
|
||||
|
||||
|
||||
class ReportProjectTaskUser(models.Model):
|
||||
_name = "report.project.maintenance"
|
||||
_description = "Project Maintenance Analysis"
|
||||
_order = 'project_id'
|
||||
_auto = False
|
||||
|
||||
project_id = fields.Many2one('project.project', string='Project', readonly=True)
|
||||
maintenance_type_id = fields.Many2one('project.maintenance.type', string='Maintenance Type', readonly=True)
|
||||
maintenance_id = fields.Many2one('project.maintenance', string='Maintenance', readonly=True)
|
||||
cost = fields.Float("Cost", digits=(16, 2), readonly=True)
|
||||
#total_amount = fields.Float("Total Cost", digits=(16, 2), readonly=True)
|
||||
#nbr = fields.Integer('# of Maintenance', readonly=True)
|
||||
|
||||
def init(self):
|
||||
'''Create the view'''
|
||||
tools.drop_view_if_exists(self._cr, self._table)
|
||||
self._cr.execute("""
|
||||
CREATE OR REPLACE VIEW %s AS (
|
||||
SELECT min(lines.id) as id,
|
||||
pro.id as project_id,
|
||||
details.maintenance_type_id as maintenance_type_id,
|
||||
lines.maintenance_id as maintenance_id,
|
||||
lines.cost as cost
|
||||
from project_project pro
|
||||
left join project_maintenance_details as details ON (pro.id = details.project_id)
|
||||
left join project_maintenance_lines as lines ON (details.id = lines.details_id)
|
||||
left join project_maintenance as main ON (main.id = details.maintenance_type_id)
|
||||
group by pro.id, details.maintenance_type_id, lines.maintenance_id, lines.cost
|
||||
)""" % (self._table,))
|
|
@ -0,0 +1,58 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="view_report_project_maintenance_pivot" model="ir.ui.view">
|
||||
<field name="name">report.project.maintenance.pivot</field>
|
||||
<field name="model">report.project.maintenance</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Maintenance Analysis" display_quantity="true" disable_linking="True" sample="1">
|
||||
<field name="project_id" type="row"/>
|
||||
<field name="maintenance_type_id" type="col"/>
|
||||
<field name="cost" type="measure"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_report_project_maintenance_graph" model="ir.ui.view">
|
||||
<field name="name">report.project.maintenance.graph</field>
|
||||
<field name="model">report.project.maintenance</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Maintenance Analysis" stacked="True" sample="1" disable_linking="1">
|
||||
<field name="project_id" type="row"/>
|
||||
<field name="maintenance_type_id" type="row"/>
|
||||
<field name="maintenance_id" type="col"/>
|
||||
<field name="cost" type="measure"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_report_project_maintenance_search" model="ir.ui.view">
|
||||
<field name="name">report.project.maintenance.search</field>
|
||||
<field name="model">report.project.maintenance</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Maintenance Analysis">
|
||||
<field name="maintenance_id"/>
|
||||
<field name="maintenance_type_id"/>
|
||||
<group expand="1" string="Group By">
|
||||
<filter string="Project" name="project" context="{'group_by': 'project_id'}"/>
|
||||
<filter string="Maintenance Type" name="maintenance_type_id" context="{'group_by':'maintenance_type_id'}"/>
|
||||
<filter string="Maintenance" name="maintenance" context="{'group_by': 'maintenance_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_report_project_maintenance" model="ir.actions.act_window">
|
||||
<field name="name">Maintenance Analysis</field>
|
||||
<field name="res_model">report.project.maintenance</field>
|
||||
<field name="view_mode">graph,pivot</field>
|
||||
<field name="search_view_id" ref="view_report_project_maintenance_search"/>
|
||||
<field name="context">{'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_project_report_maintenance_analysis"
|
||||
name="Maintenance Analysis"
|
||||
action="action_report_project_maintenance"
|
||||
parent="project.menu_project_report"
|
||||
sequence="11"/>
|
||||
</odoo>
|
|
@ -0,0 +1,12 @@
|
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_project_maintenance_type_puser,project.maintenance.type,model_project_maintenance_type,project.group_project_user,1,0,0,0
|
||||
access_project_maintenance_type_pmanager,project.maintenance.type,model_project_maintenance_type,project.group_project_manager,1,1,1,1
|
||||
access_project_maintenance_puser,project.maintenance,model_project_maintenance,project.group_project_user,1,0,0,0
|
||||
access_project_maintenance_pmanager,project.maintenance,model_project_maintenance,project.group_project_manager,1,1,1,1
|
||||
access_project_maintenance_details_puser,project.maintenance.details,model_project_maintenance_details,project.group_project_user,1,0,0,0
|
||||
access_project_maintenance_details_pmanager,project.maintenance.details,model_project_maintenance_details,project.group_project_manager,1,1,1,1
|
||||
access_project_maintenance_lines_puser,project.maintenance.lines,model_project_maintenance_lines,project.group_project_user,1,0,0,0
|
||||
access_project_maintenance_lines_pmanager,project.maintenance.lines,model_project_maintenance_lines,project.group_project_manager,1,1,1,1
|
||||
access_report_project_maintenance,report.project.maintenance,model_report_project_maintenance,project.group_project_manager,1,1,1,1
|
||||
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record id="view_project_maintenance_type_form" model="ir.ui.view">
|
||||
<field name="name">project.maintenance.type.form</field>
|
||||
<field name="model">project.maintenance.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Maintenance Type">
|
||||
<sheet string="project.maintenance.type">
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="maintenance_ids" nolabel="1" widget="one2many">
|
||||
<tree editable="top">
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
<form>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="maintenance_type_id"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_project_maintenance_type_tree" model="ir.ui.view">
|
||||
<field name="name">project.maintenance.type.tree</field>
|
||||
<field name="model">project.maintenance.type</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Maintenance Type">
|
||||
<field name="name"/>
|
||||
<field name="maintenance_ids"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="project_maintenance_type_action" model="ir.actions.act_window">
|
||||
<field name="name">Maintenance Type</field>
|
||||
<field name="res_model">project.maintenance.type</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="project_menu_config_maintenance_type"
|
||||
action="project_maintenance_type_action"
|
||||
parent="project.menu_project_config"/>
|
||||
|
||||
|
||||
<!-- <record id="view_project_maintenance_form" model="ir.ui.view">
|
||||
<field name="name">project.maintenance.form</field>
|
||||
<field name="model">project.maintenance</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Maintenance">
|
||||
<sheet string="project.maintenance">
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_project_maintenance_tree" model="ir.ui.view">
|
||||
<field name="name">project.maintenance.tree</field>
|
||||
<field name="model">project.maintenance</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Maintenance">
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="project_maintenance_action" model="ir.actions.act_window">
|
||||
<field name="name">Maintenance</field>
|
||||
<field name="res_model">project.maintenance</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="project_menu_config_maintenance"
|
||||
action="project_maintenance_action"
|
||||
parent="project.menu_project_config"/> -->
|
||||
|
||||
</data>
|
||||
</odoo>
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
|
||||
<record id="project_project_view_form" model="ir.ui.view">
|
||||
<field name="name">project.project.maintenance.view.form</field>
|
||||
<field name="model">project.project</field>
|
||||
<field name="inherit_id" ref="project.edit_project"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@name='settings']" position="after">
|
||||
<page string="Maintenance" name="maintenance_details">
|
||||
<field name="maintenance_ids">
|
||||
<tree>
|
||||
<field name="maintenance_type_id"/>
|
||||
<field name="line_ids"/>
|
||||
<field name="total_amount" sum="Total" widget="monetary"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
</tree>
|
||||
<form>
|
||||
<group>
|
||||
<field name="maintenance_type_id"/>
|
||||
<field name="total_amount" widget="monetary" options="{'currency_field':'currency_id'}"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="line_ids" colspan="4" nolabel="1" widget="one2many">
|
||||
<tree editable="top">
|
||||
<field name="maintenance_id" context="{'default_maintenance_type_id':parent.maintenance_type_id}" domain="[('maintenance_type_id','=',parent.maintenance_type_id)]"/>
|
||||
<field name="cost" widget="monetary" options="{'currency_field':'currency_id'}"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
</tree>
|
||||
<form>
|
||||
<group>
|
||||
<field name="maintenance_id" context="{'default_maintenance_type_id':parent.maintenance_type_id}" domain="[('maintenance_type_id','=',parent.maintenance_type_id)]"/>
|
||||
<field name="cost" widget="monetary" options="{'currency_field':'currency_id'}"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</odoo>
|
Loading…
Reference in New Issue