[NEW] Add grade models and grade management

This commit is contained in:
Stéphan Sainléger
2022-03-05 21:57:45 +01:00
parent 3dd1f5df6e
commit a695473354
7 changed files with 57 additions and 2 deletions

View File

@@ -61,6 +61,7 @@ This module is maintained by ELABORE.
"data": [
"views/vote.xml",
"views/candidate.xml",
"views/grade_model.xml",
"views/menus.xml",
"security/ir.model.access.csv",
],

View File

@@ -9,6 +9,7 @@ class MajorityJudgementGradeModel(models.Model):
name = fields.Char(string=_("Name"), required=True)
color = fields.Integer("Color Index", default=0)
sequence = fields.Integer()
class MajorityJudgementGrade(models.Model):
@@ -17,4 +18,5 @@ class MajorityJudgementGrade(models.Model):
name = fields.Char(string=_("Name"), required=True)
color = fields.Integer("Color Index", default=0)
sequence = fields.Integer()
vote_id = fields.Many2one("vote", string=_("Vote"))

View File

@@ -26,6 +26,25 @@ class MajorityJudgementVote(models.Model):
copy=False,
)
@api.model
def create(self, values):
record = super(MajorityJudgementVote, self).create(values)
record.generate_default_grades()
return record
def generate_default_grades(self):
for grade in self.grade_ids:
grade.unlink()
grade_models = self.env["grade.model"].search([])
for model in grade_models:
vals = {
"name": model.name,
"color": model.color,
"sequence": model.sequence,
"vote_id": self.id,
}
self.env["grade"].create(vals)
def action_open_vote(self):
self.state = "opened"

View File

@@ -2,4 +2,5 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_vote_manager,access_vote_manager,model_vote,base.group_user,1,1,1,1
access_voter_manager,access_voter_manager,model_voter,base.group_user,1,1,1,1
access_grade_manager,access_grade_manager,model_grade,base.group_user,1,1,1,1
access_grade_model_manager,access_grade_model_manager,model_grade_model,base.group_user,1,1,1,1
access_candidate_manager,access_candidate_manager,model_candidate,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_vote_manager access_vote_manager model_vote base.group_user 1 1 1 1
3 access_voter_manager access_voter_manager model_voter base.group_user 1 1 1 1
4 access_grade_manager access_grade_manager model_grade base.group_user 1 1 1 1
5 access_grade_model_manager access_grade_model_manager model_grade_model base.group_user 1 1 1 1
6 access_candidate_manager access_candidate_manager model_candidate base.group_user 1 1 1 1

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="grade_model_tree_view" model="ir.ui.view">
<field name="name">grade.model.tree.view</field>
<field name="model">grade.model</field>
<field name="priority">0</field>
<field name="arch" type="xml">
<tree string="Grade Models" editable="top">
<field name="sequence" widget="handle" />
<field name="name" />
<field name="color" />
</tree>
</field>
</record>
</odoo>

View File

@@ -12,9 +12,23 @@
</field>
</record>
<record model="ir.actions.act_window" id="action_view_grade_models_list">
<field name="name">Grade Models</field>
<field name="res_model">grade.model</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a grade model
</p>
</field>
</record>
<menuitem id="majority_judgement_menu_root" name="Majority Judgements" sequence="60" web_icon="majority_judgement,static/description/icon.png" />
<menuitem id="majority_judgement_men" name="Majority Judgements" parent="majority_judgement_menu_root" sequence="1" action="action_view_vote_list" />
<menuitem id="majority_judgement_menu" name="Majority Judgements" parent="majority_judgement_menu_root" sequence="1" action="action_view_vote_list" />
<menuitem id="majority_judgement_configuration_menu" name="Configuration" parent="majority_judgement_menu_root" sequence="2" />
<menuitem id="majority_judgement_grade_models_menu" name="Grade Models" parent="majority_judgement_configuration_menu" sequence="1" action="action_view_grade_models_list" />
</odoo>

View File

@@ -44,11 +44,13 @@
</page>
<page name="grades" string="Grades">
<field name="grade_ids" create="true">
<tree default_order="name">
<tree default_order="sequence">
<field name="sequence" widget="handle" />
<field name="name" />
<field name="color" />
</tree>
</field>
<button name="generate_default_grades" string="Re-initialize" class="oe_highlight" type="object" />
</page>
<page name="voters" string="Voters">
<field name="voter_ids" create="true">