Skip to content
Extraits de code Groupes Projets
Valider b58b5b39 rédigé par Hugo Trentesaux's avatar Hugo Trentesaux
Parcourir les fichiers

ajoute les UR

parent edc05aea
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -11,6 +11,8 @@
# datas
# views
"views/res_partner.xml",
"views/union_regionale.xml",
"views/menus.xml",
# views menu
# wizard
],
......
from . import res_partner
from . import union_regionale
# Copyright 2024- Le Filament (https://le-filament.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from odoo import models, fields
from odoo import models, fields, api
from odoo.exceptions import ValidationError
class ResPartner(models.Model):
_inherit = "res.partner"
_description = "Description"
is_cooperative = fields.Boolean("Est une coopérative")
# ------------------------------------------------------
# Fields declaration
# ------------------------------------------------------
is_cooperative = fields.Boolean("Est une coopérative")
ur_id = fields.Many2one(
comodel_name="union.regionale",
string="Union Régionale",
index=True,
ondelete="restrict",
)
# ------------------------------------------------------
# SQL Constraints
# ------------------------------------------------------
......@@ -30,6 +37,12 @@ class ResPartner(models.Model):
# Onchange / Constraints
# ------------------------------------------------------
@api.constrains('is_cooperative', 'is_company')
def _check_individual_not_cooperative(self):
for record in self:
if record.is_cooperative and not record.is_company:
raise ValidationError("An individual can not be a cooperative")
# ------------------------------------------------------
# CRUD methods (ORM overrides)
# ------------------------------------------------------
......
# © 2024 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class UnionRegional(models.Model):
_name = "union.regionale"
_description = "Union Régionale"
_order = "name"
long_name = fields.Char("Nom", required=True, index=True)
name = fields.Char("Abbréviation", required=True, index=True)
code_ur = fields.Char("Code UR")
_sql_constraints = [
("name_uniq", "unique (name)", "Cette Union Régionale existe déjà !")
]
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_union_regionale,access_union_regionale,model_union_regionale,base.group_user,1,0,0,0
admin_union_regionale,admin_union_regionale,model_union_regionale,base.group_erp_manager,1,1,1,1
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- Contacts -->
<!-- Coopératives -->
<menuitem
id="menu_coop"
name="Coopératives"
parent="contacts.menu_contacts"
action="coop_partner_action"
/>
<!-- Configuration -->
<!-- Union Regionales -->
<menuitem
id="menu_union_regionale"
name="Unions Régionales"
parent="contacts.menu_contacts"
action="union_regionale_act_window"
sequence="20"
/>
</odoo>
......@@ -2,10 +2,13 @@
<!-- Copyright 2024- Le Filament (https://le-filament.com)
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<!-- View -->
<!-- Form -->
<record id="view_partner_form" model="ir.ui.view">
<field name="name">res.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//h1" position="before">
<span invisible="not is_company">
......@@ -15,4 +18,78 @@
</xpath>
</field>
</record>
<!-- List -->
<record id="view_partner_tree" model="ir.ui.view">
<field name="name">res.partner.list</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_tree"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='complete_name']" position="after">
<field name="ur_id" optional="hide"/>
</xpath>
</field>
</record>
<!-- Search View -->
<record id="search_partner" model="ir.ui.view">
<field name="name">res.partner.search</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<!-- Search -->
<xpath expr="//field[@name='name']" position="after">
<field name="ur_id"/>
</xpath>
<!-- Filters -->
<!-- <xpath expr="//filter[@name='inactive']" position="before">-->
<!-- <filter-->
<!-- string="Adhérents"-->
<!-- name="member_coop"-->
<!-- domain="[('membership_status', 'not in', ['not_member', 'out'])]"-->
<!-- />-->
<!-- <filter-->
<!-- string="Non Adhérents"-->
<!-- name="not_member_coop"-->
<!-- domain="[('membership_status', 'in', ['not_member', 'out'])]"-->
<!-- />-->
<!-- </xpath>-->
<!-- Group -->
<xpath expr="//filter[@name='salesperson']" position="before">
<!-- <filter-->
<!-- string="A jour des cotisations"-->
<!-- name="group_ur_id"-->
<!-- context="{'group_by': 'ur_id'}"-->
<!-- />-->
</xpath>
</field>
</record>
<!-- Action -->
<record id="contacts.action_contacts" model="ir.actions.act_window">
<field name="domain">[('is_cooperative', '!=', True)]</field>
</record>
<record id="coop_partner_action" model="ir.actions.act_window">
<field name="name">Coopératives</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
<field name="view_mode">list,form</field>
<field name="search_view_id" ref="search_partner"/>
<field name="domain">[('is_cooperative', '=', True)]</field>
<field name="path">coop</field>
<field name="context">
{
'default_is_cooperative': True,
'default_is_company': True,
}
</field>
<field
name="view_ids"
eval="[(5, 0, 0), (0, 0, {'view_mode': 'list', 'view_id': ref('view_partner_tree')}),]"
/>
</record>
</odoo>
<?xml version="1.0" ?>
<!-- Copyright 2024 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<!-- Tree -->
<record model="ir.ui.view" id="union_regionale_tree_view">
<field name="name">union.regionale.list</field>
<field name="model">union.regionale</field>
<field name="arch" type="xml">
<list string="Unions Régionales">
<field name="long_name"/>
<field name="name"/>
<field name="code_ur"/>
</list>
</field>
</record>
<!-- Form-->
<record model="ir.ui.view" id="union_regionale_form_view">
<field name="name">union.regionale.form</field>
<field name="model">union.regionale</field>
<field name="arch" type="xml">
<form string="Union Régionale">
<sheet>
<group>
<field name="long_name"/>
<field name="name"/>
<field name="code_ur"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- Action -->
<record model="ir.actions.act_window" id="union_regionale_act_window">
<field name="name">Unions Régionales</field>
<field name="res_model">union.regionale</field>
<field name="path">ur</field>
<field name="view_mode">list,form</field>
</record>
</odoo>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter