|
@@ -158,3 +158,126 @@ class File(db.Model):
|
|
|
lazy='subquery',
|
|
|
backref=db.backref('pages', lazy=True)
|
|
|
)
|
|
|
+
|
|
|
+
|
|
|
+class Motion(db.Model):
|
|
|
+ """Model for Motion"""
|
|
|
+ id = db.Column(db.Integer, primary_key=True)
|
|
|
+ name = db.Column(db.String, nullable=False)
|
|
|
+ description = db.Column(db.String)
|
|
|
+ start_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
+ end_at = db.Column(db.DateTime, nullable=False)
|
|
|
+
|
|
|
+ user_id = db.Column(
|
|
|
+ db.Integer,
|
|
|
+ db.ForeignKey("user.id")
|
|
|
+ )
|
|
|
+ user = db.relationship(
|
|
|
+ "User",
|
|
|
+ backref=db.backref("motions", lazy="dynamic")
|
|
|
+ )
|
|
|
+
|
|
|
+ priority_id = db.Column(
|
|
|
+ db.Integer,
|
|
|
+ db.ForeignKey("priority.id")
|
|
|
+ )
|
|
|
+ priority = db.relationship(
|
|
|
+ "Priority",
|
|
|
+ backref=db.backref("motions", lazy="dynamic")
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+class Priority(db.Model):
|
|
|
+ """Model for Priority"""
|
|
|
+ id = db.Column(db.Integer, primary_key=True)
|
|
|
+ name = db.Column(db.String, nullable=False)
|
|
|
+ description = db.Column(db.String, nullable=False)
|
|
|
+
|
|
|
+
|
|
|
+class Vote(db.Model):
|
|
|
+ """Model for Vote"""
|
|
|
+ id = db.Column(db.Integer, primary_key=True)
|
|
|
+ value = db.Column(db.Boolean)
|
|
|
+ datetime = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
+
|
|
|
+ motion_id = db.Column(
|
|
|
+ db.Integer,
|
|
|
+ db.ForeignKey("motion.id")
|
|
|
+ )
|
|
|
+ motion = db.relationship(
|
|
|
+ "Motion",
|
|
|
+ backref=db.backref("votes", lazy="dynamic")
|
|
|
+ )
|
|
|
+
|
|
|
+ candidate_id = db.Column(
|
|
|
+ db.Integer,
|
|
|
+ db.ForeignKey("candidate.id")
|
|
|
+ )
|
|
|
+ motion = db.relationship(
|
|
|
+ "Candidate",
|
|
|
+ backref=db.backref("votes", lazy="dynamic")
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+election_function = db.Table(
|
|
|
+ 'election_function',
|
|
|
+ db.Column(
|
|
|
+ 'election_id',
|
|
|
+ db.Integer,
|
|
|
+ db.ForeignKey('election.id'),
|
|
|
+ primary_key=True
|
|
|
+ ),
|
|
|
+ db.Column(
|
|
|
+ 'function_id',
|
|
|
+ db.Integer,
|
|
|
+ db.ForeignKey('function.id'),
|
|
|
+ primary_key=True
|
|
|
+ )
|
|
|
+)
|
|
|
+
|
|
|
+
|
|
|
+class Election(db.Model):
|
|
|
+ """Model for Election"""
|
|
|
+ id = db.Column(db.Integer, primary_key=True)
|
|
|
+ start_at = db.Column(db.DateTime, default=datetime.utcnow)
|
|
|
+ end_at = db.Column(db.DateTime, nullable=False)
|
|
|
+ name = db.Column(db.String, nullable=False)
|
|
|
+ description = db.Column(db.String)
|
|
|
+
|
|
|
+
|
|
|
+class Function(db.Model):
|
|
|
+ """Model for Function"""
|
|
|
+ id = db.Column(db.Integer, primary_key=True)
|
|
|
+ name = db.Column(db.String, nullable=False)
|
|
|
+ description = db.Column(db.String)
|
|
|
+
|
|
|
+ elections = db.relationship(
|
|
|
+ 'Election',
|
|
|
+ secondary=election_function,
|
|
|
+ lazy='subquery',
|
|
|
+ backref=db.backref('functions', lazy=True)
|
|
|
+ )
|
|
|
+
|
|
|
+
|
|
|
+class Candidate(db.Model):
|
|
|
+ """Model for Candidate"""
|
|
|
+ id = db.Column(db.Integer, primary_key=True)
|
|
|
+ motivation = db.Column(db.String)
|
|
|
+
|
|
|
+ user_id = db.Column(
|
|
|
+ db.Integer,
|
|
|
+ db.ForeignKey("user.id")
|
|
|
+ )
|
|
|
+ user = db.relationship(
|
|
|
+ "User",
|
|
|
+ backref=db.backref("eligible", lazy="dynamic")
|
|
|
+ )
|
|
|
+
|
|
|
+ function_id = db.Column(
|
|
|
+ db.Integer,
|
|
|
+ db.ForeignKey("function.id")
|
|
|
+ )
|
|
|
+ user = db.relationship(
|
|
|
+ "Function",
|
|
|
+ backref=db.backref("candidates", lazy="dynamic")
|
|
|
+ )
|