Skip to content
Extraits de code Groupes Projets
Valider 5e9d69e1 rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[ADD] models, fields and datas for FSE

parent 420f0558
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -13,9 +13,11 @@
"datas/alterincub_area.xml",
"datas/alterincub_class_duration.xml",
"datas/alterincub_department.xml",
"datas/alterincub_education_level.xml",
"datas/alterincub_end_reason.xml",
"datas/alterincub_sector.xml",
"datas/alterincub_service_place.xml",
"datas/alterincub_situation_entrance.xml",
# wizard
"wizard/alterincub_exit_project_wizard.xml",
# views
......@@ -24,12 +26,14 @@
"views/alterincub_class_duration.xml",
"views/alterincub_collective_day.xml",
"views/alterincub_department.xml",
"views/alterincub_education_level.xml",
"views/alterincub_end_reason.xml",
"views/alterincub_lot.xml",
"views/alterincub_price_list.xml",
"views/alterincub_program.xml",
"views/alterincub_sector.xml",
"views/alterincub_service_place.xml",
"views/alterincub_situation_entrance.xml",
"views/res_partner.xml",
# views menus
"views/menus.xml",
......
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2022 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data noupdate="1">
<record id="alterincub_education_level_01" model="alterincub.education.level">
<field name="sequence">10</field>
<field name="name">CITE_0</field>
<field name="description">Inférieur à l'école primaire, vous n'êtes jamais allé à l'école</field>
</record>
<record id="alterincub_education_level_02" model="alterincub.education.level">
<field name="sequence">20</field>
<field name="name">CITE_1_2</field>
<field name="description">Primaire, 6ème, 5ème, 4ème, 3ème (secondaire 1er cycle), Brevet des collèges, CAP, BEP, 2nde professionnelle (technique cycle court)</field>
</record>
<record id="alterincub_education_level_03" model="alterincub.education.level">
<field name="sequence">30</field>
<field name="name">CITE_3_4</field>
<field name="description">Baccalauréat général ou technologique, Bac Pro, Brevet professionnel (BP)</field>
</record>
<record id="alterincub_education_level_04" model="alterincub.education.level">
<field name="sequence">40</field>
<field name="name">CITE_5_8</field>
<field name="description">DEUG, BTS, DUT, Ecoles d'infirmières, Licence, Maîtrise, Grande école, Ecole d'ingénieur, Ecole de commerce, Master recherche ou professionnel, DEA, DESS, Doctorat</field>
</record>
</data>
</odoo>
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright 2022 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data noupdate="1">
<record id="alterincub_situation_entrance_01" model="alterincub.situation.entrance">
<field name="sequence">10</field>
<field name="name">EMPLOI</field>
<field name="description">(y compris indépendant)</field>
</record>
<record id="alterincub_situation_entrance_02" model="alterincub.situation.entrance">
<field name="sequence">20</field>
<field name="name">RECHERCHE_EMPLOI_MOINS_6_MOIS</field>
</record>
<record id="alterincub_situation_entrance_03" model="alterincub.situation.entrance">
<field name="sequence">30</field>
<field name="name">RECHERCHE_EMPLOI_6_12_MOIS</field>
</record>
<record id="alterincub_situation_entrance_04" model="alterincub.situation.entrance">
<field name="sequence">40</field>
<field name="name">RECHERCHE_EMPLOI_PLUS_12_MOIS</field>
</record>
<record id="alterincub_situation_entrance_05" model="alterincub.situation.entrance">
<field name="sequence">50</field>
<field name="name">FORMATION</field>
<field name="description">En formation ou en enseignement</field>
</record>
<record id="alterincub_situation_entrance_06" model="alterincub.situation.entrance">
<field name="sequence">60</field>
<field name="name">INACTIF</field>
<field name="description">Inactif, ni en formation, ni en enseignement</field>
</record>
</data>
</odoo>
......@@ -5,6 +5,7 @@ from . import alterincub_area
from . import alterincub_class
from . import alterincub_class_duration
from . import alterincub_collective_day
from . import alterincub_education_level
from . import alterincub_department
from . import alterincub_end_reason
from . import alterincub_lot
......@@ -12,4 +13,5 @@ from . import alterincub_price_list
from . import alterincub_program
from . import alterincub_sector
from . import alterincub_service_place
from . import alterincub_situration_entrance
from . import res_partner
# Copyright 2022 Le Filament (https://le-filament.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from odoo import fields, models
class AlterincubEducationLevel(models.Model):
_name = "alterincub.education.level"
_description = "Niveau d'instruction"
# ------------------------------------------------------
# Fields declaration
# ------------------------------------------------------
name = fields.Char(
"Nom",
required=True,
)
active = fields.Boolean(
"Actif",
default=True,
)
description = fields.Char("Description")
sequence = fields.Integer()
# ------------------------------------------------------
# Computed fields / Search Fields
# ------------------------------------------------------
# ------------------------------------------------------
# Onchange / Constraints
# -----------------------------------------------------
# Copyright 2022 Le Filament (https://le-filament.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from odoo import fields, models
class AlterincubSituationEntrance(models.Model):
_name = "alterincub.situation.entrance"
_description = "Situation à l'entrée"
# ------------------------------------------------------
# Fields declaration
# ------------------------------------------------------
name = fields.Char(
"Nom",
required=True,
)
active = fields.Boolean(
"Actif",
default=True,
)
description = fields.Char("Description")
sequence = fields.Integer()
# ------------------------------------------------------
# Computed fields / Search Fields
# ------------------------------------------------------
# ------------------------------------------------------
# Onchange / Constraints
# -----------------------------------------------------
......@@ -2,6 +2,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
import json
from dateutil.relativedelta import relativedelta
from odoo import _, api, fields, models
from odoo.exceptions import UserError
......@@ -160,6 +161,58 @@ class ResPartner(models.Model):
committee_backup = fields.Text("Retours comité")
# field to set readonly fields if not admin
is_alterincub_admin = fields.Boolean(compute="_compute_is_alterincub_admin")
# Contact fields
birthdate = fields.Date("Date de naissance")
age_range = fields.Selection(
selection=[
("under_25", "Moins de 25 ans"),
("25_35", "Entre 25 et 35 ans"),
("36_45", "Entre 36 et 45 ans"),
("over_45", "Plus de 45 ans"),
],
string="Tranche d'âge",
compute="_compute_age_range",
store=True,
)
nationality = fields.Selection(
selection=[
("ue", "UE (Union Européenne)"),
("not_ue", "HORS UE (hors Union européenne)"),
("nd", "ND (non déterminé)"),
],
string="Nationalité",
)
foreign_parents = fields.Selection(
selection=[
("yes", "Oui"),
("not", "Non"),
("nsp", "Ne souhaite pas répondre"),
],
string="Parents étrangers",
)
educational_level = fields.Many2one(
comodel_name="alterincub.education.level",
string="Niveau d'instruction",
)
situation = fields.Many2one(
comodel_name="alterincub.situation.entrance",
string="Situation à l’entrée",
)
disability = fields.Selection(
selection=[
("yes", "Oui"),
("no", "Non"),
],
string="Reconnaissance handicap",
)
exclusion_risk = fields.Selection(
selection=[
("yes", "Oui"),
("not", "Non"),
("nsp", "NSP - Ne souhaite pas répondre"),
],
string="Risque exclusion",
)
# ------------------------------------------------------
# SQL Constraints
......@@ -217,6 +270,20 @@ class ResPartner(models.Model):
if partner.contact_type == "project" and not partner.original_name:
partner.original_name = partner.name
@api.depends("birthdate")
def _compute_age_range(self):
for partner in self:
if partner.birthdate:
age = relativedelta(fields.Date.today(), partner.birthdate).years
if age < 25:
partner.age_range = "under_25"
elif 25 <= age <= 35:
partner.age_range = "25_35"
elif 36 <= age <= 45:
partner.age_range = "36_45"
else:
partner.age_range = "over_45"
# ------------------------------------------------------
# Onchange / Constraints
# ------------------------------------------------------
......
......@@ -23,3 +23,7 @@ access_alterincub_program_manager,access_alterincub_program_manager,model_alteri
access_alterincub_sector_manager,access_alterincub_sector_manager,model_alterincub_sector,alterincub_partner.group_alterincub_list_manager,1,1,1,1
access_alterincub_service_place_manager,access_alterincub_service_place_manager,model_alterincub_service_place,alterincub_partner.group_alterincub_list_manager,1,1,1,1
access_alterincub_exit_project_wizard,access_alterincub_exit_project_wizard,model_alterincub_exit_project_wizard,base.group_user,1,1,1,1
access_alterincub_education_level,access_alterincub_education_level,model_alterincub_education_level,base.group_user,1,0,0,0
access_alterincub_education_level_manager,access_alterincub_education_level_manager,model_alterincub_education_level,alterincub_partner.group_alterincub_list_manager,1,1,1,1
access_alterincub_situation_entrance,access_alterincub_situation_entrance,model_alterincub_situation_entrance,base.group_user,1,0,0,0
access_alterincub_situation_entrance_manager,access_alterincub_situation_entrance_manager,model_alterincub_situation_entrance,alterincub_partner.group_alterincub_list_manager,1,1,1,1
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2022 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data>
<!-- Tree view -->
<record id="alterincub_education_level_tree_view" model="ir.ui.view">
<field name="name">alterincub.education.level.tree</field>
<field name="model">alterincub.education.level</field>
<field name="arch" type="xml">
<tree string="Niveau d'instruction" editable="top">
<field name="sequence" widget="handle" />
<field name="name" />
<field name="description" />
</tree>
</field>
</record>
<!--
ACTIONS
-->
<record id="alterincub_education_level_act_window" model="ir.actions.act_window">
<field name="name">Niveaux d'éducation</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">alterincub.education.level</field>
<field name="view_mode">tree</field>
</record>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2022 Le Filament
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<data>
<!-- Tree view -->
<record id="alterincub_situation_entrance_tree_view" model="ir.ui.view">
<field name="name">alterincub.situation.entrance.tree</field>
<field name="model">alterincub.situation.entrance</field>
<field name="arch" type="xml">
<tree string="Situation à l’entrée" editable="top">
<field name="sequence" widget="handle" />
<field name="name" />
<field name="description" />
</tree>
</field>
</record>
<!--
ACTIONS
-->
<record id="alterincub_situation_entrance_act_window" model="ir.actions.act_window">
<field name="name">Situation à l’entrée</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">alterincub.situation.entrance</field>
<field name="view_mode">tree</field>
</record>
</data>
</odoo>
......@@ -141,11 +141,18 @@
action="alterincub_partner.alterincub_end_reason_act_window"
/>
<menuitem
name="Durée de Promotion"
sequence="70"
id="menu_alterincub_class_duration"
name="Niveaux d'instruction"
sequence="80"
id="menu_alterincub_education_level"
parent="menu_alterincub_list_root"
action="alterincub_partner.alterincub_class_duration_act_window"
action="alterincub_partner.alterincub_education_level_act_window"
/>
<menuitem
name="Situations à l’entrée"
sequence="90"
id="menu_alterincub_situation_entrance"
parent="menu_alterincub_list_root"
action="alterincub_partner.alterincub_situation_entrance_act_window"
/>
</data>
</odoo>
......@@ -282,6 +282,26 @@
/>
</group>
</group>
<!-- Données porteur de projet -->
<group
name="alterincub_project_datas"
attrs="{'invisible': [('is_incubated', '!=', True)]}"
string="Questionnaire FSE"
>
<group>
<field name="birthdate" />
<field name="age_range" />
<field name="nationality" />
<field name="foreign_parents" />
</group>
<group>
<field name="educational_level" widget="selection" />
<field name="situation" widget="selection" />
<field name="disability" />
<field name="exclusion_risk" />
</group>
</group>
</xpath>
<!-- Masque l'onglet Contacts pour les contacts -->
......
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