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 @@
-
+
+
+