From a695473354c36f6a48da24d7fbd427d04c04d04c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Sat, 5 Mar 2022 21:57:45 +0100 Subject: [PATCH] [NEW] Add grade models and grade management --- majority_judgement/__manifest__.py | 1 + majority_judgement/models/grade.py | 2 ++ majority_judgement/models/vote.py | 19 +++++++++++++++++++ .../security/ir.model.access.csv | 1 + majority_judgement/views/grade_model.xml | 16 ++++++++++++++++ majority_judgement/views/menus.xml | 16 +++++++++++++++- majority_judgement/views/vote.xml | 4 +++- 7 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 majority_judgement/views/grade_model.xml diff --git a/majority_judgement/__manifest__.py b/majority_judgement/__manifest__.py index 321221e..d6582ef 100644 --- a/majority_judgement/__manifest__.py +++ b/majority_judgement/__manifest__.py @@ -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", ], diff --git a/majority_judgement/models/grade.py b/majority_judgement/models/grade.py index 5ed157b..e631a5d 100644 --- a/majority_judgement/models/grade.py +++ b/majority_judgement/models/grade.py @@ -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")) diff --git a/majority_judgement/models/vote.py b/majority_judgement/models/vote.py index ce4d87c..a9024b8 100644 --- a/majority_judgement/models/vote.py +++ b/majority_judgement/models/vote.py @@ -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" diff --git a/majority_judgement/security/ir.model.access.csv b/majority_judgement/security/ir.model.access.csv index bf2e7a4..1cc842d 100644 --- a/majority_judgement/security/ir.model.access.csv +++ b/majority_judgement/security/ir.model.access.csv @@ -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 \ No newline at end of file diff --git a/majority_judgement/views/grade_model.xml b/majority_judgement/views/grade_model.xml new file mode 100644 index 0000000..b7e8d64 --- /dev/null +++ b/majority_judgement/views/grade_model.xml @@ -0,0 +1,16 @@ + + + + grade.model.tree.view + grade.model + 0 + + + + + + + + + + \ No newline at end of file diff --git a/majority_judgement/views/menus.xml b/majority_judgement/views/menus.xml index 3abc4b4..0c4d5bc 100644 --- a/majority_judgement/views/menus.xml +++ b/majority_judgement/views/menus.xml @@ -12,9 +12,23 @@ + + Grade Models + grade.model + form + tree + +

+ Create a grade model +

+
+
+ - + + + \ No newline at end of file diff --git a/majority_judgement/views/vote.xml b/majority_judgement/views/vote.xml index 58c42e7..48ea5c0 100644 --- a/majority_judgement/views/vote.xml +++ b/majority_judgement/views/vote.xml @@ -44,11 +44,13 @@ - + + +