Browse Source
Merge pull request #287 from ygol/12.0-mig-agreement
Merge pull request #287 from ygol/12.0-mig-agreement
[MIG] agreement: Migration to 12.0pull/298/head
Maxime Chambreuil
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 376 additions and 0 deletions
-
1agreement/__init__.py
-
27agreement/__manifest__.py
-
63agreement/demo/demo.xml
-
130agreement/i18n/agreement.pot
-
1agreement/models/__init__.py
-
39agreement/models/agreement.py
-
2agreement/readme/CONTRIBUTORS.rst
-
8agreement/readme/DESCRIPTION.rst
-
17agreement/security/agreement_security.xml
-
2agreement/security/ir.model.access.csv
-
86agreement/views/agreement.xml
@ -0,0 +1 @@ |
|||
from . import models |
@ -0,0 +1,27 @@ |
|||
# © 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
{ |
|||
'name': 'Agreement', |
|||
'summary': "Adds an agreement object", |
|||
'version': '12.0.1.0.0', |
|||
'category': 'Contract', |
|||
'author': 'Akretion, ' |
|||
'Yves Goldberg (Ygol Internetwork), ' |
|||
'Odoo Community Association (OCA)', |
|||
'website': 'https://github.com/oca/contract', |
|||
'license': 'AGPL-3', |
|||
'depends': ['base'], |
|||
'data': [ |
|||
'security/ir.model.access.csv', |
|||
'security/agreement_security.xml', |
|||
'views/agreement.xml', |
|||
], |
|||
'demo': ['demo/demo.xml'], |
|||
'development_status': 'Beta', |
|||
'maintainers': [ |
|||
'ygol', |
|||
'alexis-via', |
|||
], |
|||
'installable': True, |
|||
} |
@ -0,0 +1,63 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<!-- |
|||
© 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) |
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
--> |
|||
|
|||
<odoo noupdate="1"> |
|||
|
|||
|
|||
<record id="market1" model="agreement"> |
|||
<field name="code">C2C-IT0042</field> |
|||
<field name="name">Hardware IT</field> |
|||
<field name="partner_id" ref="base.res_partner_12"/> |
|||
<field name="signature_date">2017-09-10</field> |
|||
<field name="start_date">2017-09-10</field> |
|||
<field name="end_date">2018-09-10</field> |
|||
</record> |
|||
|
|||
<record id="market2" model="agreement"> |
|||
<field name="code">C2C-IT0043</field> |
|||
<field name="name">Fiber access office Lausanne</field> |
|||
<field name="partner_id" ref="base.res_partner_12"/> |
|||
<field name="signature_date" eval="time.strftime('%Y-01-01')"/> |
|||
<field name="start_date" eval="time.strftime('%Y-01-01')"/> |
|||
<field name="end_date" eval="time.strftime('%Y-01-01')"/> |
|||
</record> |
|||
|
|||
<record id="market3" model="agreement"> |
|||
<field name="code">AGR-VETO001</field> |
|||
<field name="name">Vétérinaire</field> |
|||
<field name="partner_id" ref="base.res_partner_2"/> |
|||
<field name="signature_date">2017-08-01</field> |
|||
<field name="start_date">2017-08-01</field> |
|||
<field name="end_date">2018-08-01</field> |
|||
</record> |
|||
|
|||
<record id="market4" model="agreement"> |
|||
<field name="code">AGR-TEL001</field> |
|||
<field name="name">Wazo IPBX deployment and maintenance</field> |
|||
<field name="partner_id" ref="base.res_partner_2"/> |
|||
<field name="signature_date">2017-05-05</field> |
|||
<field name="start_date">2017-05-05</field> |
|||
<field name="end_date">2018-09-10</field> |
|||
</record> |
|||
|
|||
<record id="market5" model="agreement"> |
|||
<field name="code">BUY-VOIP012</field> |
|||
<field name="name">SIP Phones supply</field> |
|||
<field name="partner_id" ref="base.res_partner_1"/> |
|||
<field name="signature_date" eval="time.strftime('%Y-01-01')"/> |
|||
<field name="start_date" eval="time.strftime('%Y-01-01')"/> |
|||
<field name="end_date" eval="time.strftime('%Y-01-01')"/> |
|||
</record> |
|||
|
|||
<record id="market6" model="agreement"> |
|||
<field name="code">BUY-VOIP013</field> |
|||
<field name="name">SIP-ISDN gateways</field> |
|||
<field name="partner_id" ref="base.res_partner_3"/> |
|||
<field name="signature_date">2017-09-02</field> |
|||
</record> |
|||
|
|||
|
|||
</odoo> |
@ -0,0 +1,130 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * agreement |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: Odoo Server 12.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2019-01-12 13:27+0000\n" |
|||
"PO-Revision-Date: 2019-01-12 13:27+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: \n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: \n" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__active |
|||
msgid "Active" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model,name:agreement.model_agreement |
|||
#: model_terms:ir.ui.view,arch_db:agreement.agreement_form |
|||
msgid "Agreement" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.actions.act_window,name:agreement.agreement_action |
|||
#: model:ir.ui.menu,name:agreement.agreement_menu |
|||
#: model_terms:ir.ui.view,arch_db:agreement.agreement_tree |
|||
msgid "Agreements" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search |
|||
msgid "Archived" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__code |
|||
msgid "Code" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__company_id |
|||
msgid "Company" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__create_uid |
|||
msgid "Created by" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__create_date |
|||
msgid "Created on" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search |
|||
msgid "Customer" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__display_name |
|||
msgid "Display Name" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__end_date |
|||
msgid "End Date" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__id |
|||
msgid "ID" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement____last_update |
|||
msgid "Last Modified on" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__write_uid |
|||
msgid "Last Updated by" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__write_date |
|||
msgid "Last Updated on" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__name |
|||
msgid "Name" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search |
|||
msgid "Name or Number" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__partner_id |
|||
msgid "Partner" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search |
|||
msgid "Search Agreements" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__signature_date |
|||
#: model_terms:ir.ui.view,arch_db:agreement.agreement_search |
|||
msgid "Signature Date" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: model:ir.model.fields,field_description:agreement.field_agreement__start_date |
|||
msgid "Start Date" |
|||
msgstr "" |
|||
|
|||
#. module: agreement |
|||
#: sql_constraint:agreement:0 |
|||
msgid "This agreement code already exists for this partner!" |
|||
msgstr "" |
@ -0,0 +1 @@ |
|||
from . import agreement |
@ -0,0 +1,39 @@ |
|||
# © 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
|
|||
from odoo import models, fields |
|||
|
|||
|
|||
class Agreement(models.Model): |
|||
_name = 'agreement' |
|||
_description = 'Agreement' |
|||
|
|||
code = fields.Char(required=True, copy=False) |
|||
name = fields.Char(required=True) |
|||
partner_id = fields.Many2one( |
|||
'res.partner', string='Partner', ondelete='restrict', required=True, |
|||
domain=[('parent_id', '=', False)]) |
|||
company_id = fields.Many2one( |
|||
'res.company', string='Company', |
|||
default=lambda self: self.env['res.company']._company_default_get( |
|||
'agreement')) |
|||
active = fields.Boolean(default=True) |
|||
signature_date = fields.Date() |
|||
start_date = fields.Date() |
|||
end_date = fields.Date() |
|||
|
|||
def name_get(self): |
|||
res = [] |
|||
for agr in self: |
|||
name = agr.name |
|||
if agr.code: |
|||
name = u'[%s] %s' % (agr.code, agr.name) |
|||
res.append((agr.id, name)) |
|||
return res |
|||
|
|||
_sql_constraints = [( |
|||
'code_partner_company_unique', |
|||
'unique(code, partner_id, company_id)', |
|||
'This agreement code already exists for this partner!' |
|||
)] |
@ -0,0 +1,2 @@ |
|||
* Alexis de Lattre <alexis.delattre@akretion.com> |
|||
* Yves Goldberg <yves@ygol.com> |
@ -0,0 +1,8 @@ |
|||
This module adds an *Agreement* object with the following properties: |
|||
|
|||
* code, |
|||
* name, |
|||
* link to a partner, |
|||
* signature date. |
|||
* start date. |
|||
* end date. |
@ -0,0 +1,17 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<!-- |
|||
© 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) |
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
--> |
|||
|
|||
<odoo noupdate="1"> |
|||
|
|||
|
|||
<record id="agreement_rule" model="ir.rule"> |
|||
<field name="name">Agreement multi-company</field> |
|||
<field name="model_id" ref="model_agreement"/> |
|||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field> |
|||
</record> |
|||
|
|||
|
|||
</odoo> |
@ -0,0 +1,2 @@ |
|||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink |
|||
access_agreement_read,Read access on agreement to Employees,model_agreement,base.group_user,1,0,0,0 |
@ -0,0 +1,86 @@ |
|||
<?xml version="1.0"?> |
|||
<!-- |
|||
© 2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) |
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
--> |
|||
|
|||
<odoo> |
|||
|
|||
|
|||
<record id="agreement_form" model="ir.ui.view"> |
|||
<field name="name">agreement.form</field> |
|||
<field name="model">agreement</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Agreement"> |
|||
<div class="oe_button_box" name="button_box"> |
|||
<button name="toggle_active" type="object" |
|||
class="oe_stat_button" icon="fa-archive"> |
|||
<field name="active" widget="boolean_button" |
|||
options='{"terminology": "archive"}'/> |
|||
</button> |
|||
</div> |
|||
<group name="main"> |
|||
<group name="left"> |
|||
<field name="partner_id"/> |
|||
<field name="name"/> |
|||
<field name="signature_date"/> |
|||
</group> |
|||
<group name="right"> |
|||
<field name="start_date"/> |
|||
<field name="end_date"/> |
|||
<field name="code"/> |
|||
<field name="company_id" groups="base.group_multi_company"/> |
|||
</group> |
|||
</group> |
|||
<notebook> |
|||
<page name="config" string="Configuration" attrs="{'invisible': True}"/> |
|||
</notebook> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="agreement_tree" model="ir.ui.view"> |
|||
<field name="name">agreement.tree</field> |
|||
<field name="model">agreement</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Agreements"> |
|||
<field name="partner_id"/> |
|||
<field name="code"/> |
|||
<field name="name"/> |
|||
<field name="signature_date"/> |
|||
<field name="start_date"/> |
|||
<field name="end_date"/> |
|||
<field name="company_id" groups="base.group_multi_company"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="agreement_search" model="ir.ui.view"> |
|||
<field name="name">agreement.search</field> |
|||
<field name="model">agreement</field> |
|||
<field name="arch" type="xml"> |
|||
<search string="Search Agreements"> |
|||
<field name="name" filter_domain="['|', ('name', 'ilike', self), ('code', 'ilike', self)]" string="Name or Number"/> |
|||
<field name="partner_id"/> |
|||
<separator/> |
|||
<filter name="inactive" string="Archived" domain="[('active', '=', False)]"/> |
|||
<group name="groupby"> |
|||
<filter name="partner_groupby" string="Partner" |
|||
context="{'group_by': 'partner_id'}"/> |
|||
<filter name="signature_date_groupby" string="Signature Date" |
|||
context="{'group_by': 'signature_date'}"/> |
|||
</group> |
|||
</search> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="agreement_action" model="ir.actions.act_window"> |
|||
<field name="name">Agreements</field> |
|||
<field name="res_model">agreement</field> |
|||
<field name="view_mode">tree,form</field> |
|||
</record> |
|||
|
|||
<menuitem id="agreement_menu" action="agreement_action" |
|||
sequence="100"/> |
|||
|
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue