From c0cf3e2694aeb327a59e408b4f580052f183b093 Mon Sep 17 00:00:00 2001
From: Benjamin <benjamin@le-filament.com>
Date: Fri, 21 Feb 2020 15:56:31 +0100
Subject: [PATCH] [cgscop #74] financement obligatoire dans la saisie de
 l'agenda si liste des financements non vide

---
 models/calendar.py | 18 ++++++++++++++++--
 views/calendar.xml | 24 ++++--------------------
 2 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/models/calendar.py b/models/calendar.py
index ae7eeb2..e476448 100644
--- a/models/calendar.py
+++ b/models/calendar.py
@@ -46,15 +46,29 @@ class CGScopCalendar(models.Model):
         index=True,
         on_delete='restrict',
         default=_default_ur)
+    ur_financial_system_nb = fields.Integer(
+        string="Nb Dispositifs Financiers",
+        compute="_compute_ur_financial_system_nb")
 
     # ------------------------------------------------------
-    # onchange
+    # Compute
+    # ------------------------------------------------------
+    @api.depends('ur_id')
+    def _compute_ur_financial_system_nb(self):
+        for event in self:
+            financial_system = event.env['ur.financial.system'].search([
+                ('ur_id', '=', event.ur_id.id)])
+            event.ur_financial_system_nb = len(
+                financial_system)
+
+    # ------------------------------------------------------
+    # Onchange
     # ------------------------------------------------------
     @api.onchange('project_id')
     def _onchange_project_id(self):
         if self.project_id.partner_id:
             self.coop_id = self.project_id.partner_id
-     
+
     @api.onchange('coop_id')
     def _onchange_coop_id(self):
         address = ''
diff --git a/views/calendar.xml b/views/calendar.xml
index 3d5e15c..aa6008d 100644
--- a/views/calendar.xml
+++ b/views/calendar.xml
@@ -90,7 +90,8 @@
                             <field name="allday" attrs="{'readonly': [('id', '!=', False), ('recurrency','=',True)]}" force_save="1"/>
                             <field name="type" />
                             <field name="location" />
-                            <field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}" />
+                            <field name="ur_financial_system_nb" invisible="1"/>
+                            <field name="ur_financial_system_id" options="{'no_open': True, 'no_create': True}" attrs="{'required':[('ur_financial_system_nb', '>', 0)]}"/>
                         </group>
                     </group>
                     <group string="Informations complémentaires" name="event_extra_info">
@@ -166,9 +167,11 @@
                 </calendar>
                 <field name="partner_ids" position="before">
                     <field name="ur_id" invisible="1"/>
+                    <field name="coop_id" options="{'no_open': True, 'no_create': True}"/>
                 </field>
                 <field name="partner_ids" position="attributes">
                     <attribute name="domain">[('user_ids', '!=', False), ('ur_id', '=', ur_id)]</attribute>
+                    <field name="type" options="{'no_open': True, 'no_create': True}"/>
                 </field>
             </field>
         </record>
@@ -184,9 +187,6 @@
                     <field name="coop_id"/>
                 </field>
                 <filter name="mymeetings" position="after">
-                    <separator/>
-                    <filter string="Transformé en feuille de temps" name="timesheet" domain="[('is_transfered', '=', True)]"/>
-                    <filter string="Non Transformé" name="not_timesheet" domain="[('is_transfered', '=', False)]"/>
                     <separator/>
                     <filter string="UR" name="ur" domain="[('type', '=', 'ur')]"/>
                     <filter string="Hors UR" name="not_ur" domain="[('type', '=', 'outside')]"/>
@@ -195,21 +195,5 @@
             </field>
         </record>
 
-        <record id="cgscop_view_calendar_event_calendar" model="ir.ui.view">
-            <field name="name">calendar.event.calendar</field>
-            <field name="model">calendar.event</field>
-            <field name="inherit_id" ref="calendar.view_calendar_event_calendar"/>
-            <field name="arch" type="xml">
-                <data>
-                    <field name="partner_ids" position="before">
-                        <field name="coop_id" options="{'no_open': True, 'no_create': True}"/>
-                    </field>
-                    <field name="partner_ids" position="after">
-                        <field name="type" options="{'no_open': True, 'no_create': True}"/>
-                    </field>
-                </data>
-            </field>
-        </record>
-
     </data>
 </odoo>
-- 
GitLab