diff --git a/__manifest__.py b/__manifest__.py index 1bfc25740eb6e8f0c19d22fdcbbdf663faf4adec..29908d81772fd6ac86958636a9941e25a103224e 100644 --- a/__manifest__.py +++ b/__manifest__.py @@ -16,6 +16,7 @@ "security/ir.model.access.csv", "views/calendar.xml", "views/hr_timesheet.xml", + "views/res_partner.xml", "wizard/calendar_event_transform.xml", ], "qweb": [ diff --git a/models/calendar.py b/models/calendar.py index 815c690d0dacadff8c07884936a9bab43147681e..fb5446661ae7af262fdba6cfa863a0d64f4e47f8 100644 --- a/models/calendar.py +++ b/models/calendar.py @@ -418,3 +418,26 @@ class CGScopCalendar(models.Model): "duplicate": True, }, } + + def button_add_project(self): + """ + Affiche une fenêtre simplifiée pour la création d'un projet + """ + self.ensure_one() + view_id = self.env.ref("cgscop_calendar.scop_project_calendar_view_form").id + return { + "name": "Création d'un projet", + "type": "ir.actions.act_window", + "view_mode": "form", + "views": [(view_id, "form")], + "view_id": view_id, + "res_model": "res.partner", + "target": "new", + "context": { + "default_is_company": True, + "default_is_cooperative": True, + "default_company_type": "company", + "default_project_status": "1_information", + "default_date_first_rdv": self.start.date() if self.start else None, + }, + } diff --git a/views/calendar.xml b/views/calendar.xml index 3533078f52664c0aca3eb8f26b4a64e014995576..b21775f6028da1330d3e312a5413e2cfa2ce02fb 100644 --- a/views/calendar.xml +++ b/views/calendar.xml @@ -121,11 +121,23 @@ name="project_id" options="{'no_open': True, 'no_create': True}" /> - <field - name="coop_id" - options="{'no_open': True, 'no_create': True}" - domain="[('ur_id', '=', ur_id),('is_company', '=', 'True')]" - /> + <label for="coop_id" /> + <div> + <field + name="coop_id" + options="{'no_open': True, 'no_create': True}" + domain="[('ur_id', '=', ur_id),('is_company', '=', 'True')]" + style="max-width: 400px;" + /> + <button + name="button_add_project" + type="object" + string="Ajouter un projet" + class="btn-sm btn-secondary" + style="margin-left: 40px;" + attrs="{'invisible': [('coop_id', '!=', False)]}" + /> + </div> <field name="ur_id" invisible="1" /> <field name="partner_ids" diff --git a/views/res_partner.xml b/views/res_partner.xml new file mode 100644 index 0000000000000000000000000000000000000000..1ec859c917542c29a6ae1c61522362a0a7846fc8 --- /dev/null +++ b/views/res_partner.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data> + <record id="scop_project_calendar_view_form" model="ir.ui.view"> + <field name="name">scop.project.calendar.view.form</field> + <field name="model">res.partner</field> + <field name="priority">200</field> + <field name="arch" type="xml"> + <form string="Projet"> + <sheet> + <div + class="oe_title oe_title_cgscop" + > + <field name="is_cooperative" invisible="1" /> + <h1> + <field + name="name" + default_focus="1" + required="1" + placeholder="Raison Sociale" + /> + </h1> + <div class="oe_bloc_cgscop"> + <div class="o_row d-flex"> + <h3> + <field + class="o_field_header" + name="cooperative_form_id" + options="{'no_open': True, 'no_create': True}" + placeholder="Forme Coopérative" + /> + </h3> + </div> + </div> + </div> + <group> + <group string="Contact"> + <label for='street' string="Adresse du siège social" /> + <div class="o_address_format"> + <field + name="street" + placeholder="Rue..." + class="o_address_street" + /> + <field + name="street2" + placeholder="Rue 2..." + class="o_address_street" + /> + <field + name="street3" + placeholder="Rue 3..." + class="o_address_street" + /> + <field + name="zip_id" + options="{'create_name_field': 'city', 'no_open': True, 'no_create': True}" + placeholder="CP / Ville autocomplétion..." + class="oe_edit_only" + /> + <field + name="zip" + placeholder="CP..." + class="o_address_city" + /> + <field name="zip_departement" invisible="1" /> + <field + name="city" + placeholder="Ville..." + class="o_address_city" + /> + <field name="city_id" invisible="1" /> + <field + name="cedex" + placeholder="Cedex" + class="o_address_city" + /> + <field + name="state_id" + class="o_address_zip" + placeholder="Région" + options='{"no_open": True, "no_create": True}' + context="{'country_id': country_id, 'zip': zip}" + /> + <field + name="country_id" + placeholder="Pays" + class="o_address_country" + options='{"no_open": True, "no_create": True}' + /> + </div> + <field name="zip_departement" string="N° de département" /> + <field name="region" /> + <field + name="phone" + widget="phone" + string="Téléphone 1" + /> + <field + name="mobile" + widget="phone" + string="Téléphone 2" + /> + <field name="email" widget="email" string="E-mail" /> + <field + name="website" + widget="url" + /> + </group> + <group name="infos" string="Informations"> + <field name="creation_origin_id" required="1" /> + <field name="creation_suborigin_id" /> + <field name="social_object" /> + <field name="date_first_rdv" required="1" /> + <field + name="is_first_rdv_infocoll" + widget="boolean_toggle" + /> + <field name="date_send_guide" /> + <field name="adhesion_comments" /> + </group> + </group> + </sheet> + </form> + </field> + </record> + </data> +</odoo>