Added relationships between database models
This commit is contained in:
		@@ -17,7 +17,6 @@ class Entry(db.Model):
 | 
				
			|||||||
    email = db.Column(db.String(128), nullable=False)
 | 
					    email = db.Column(db.String(128), nullable=False)
 | 
				
			||||||
    club = db.Column(db.String(128), nullable=True)
 | 
					    club = db.Column(db.String(128), nullable=True)
 | 
				
			||||||
    test_id = db.Column(db.String(36), db.ForeignKey('test.id'))
 | 
					    test_id = db.Column(db.String(36), db.ForeignKey('test.id'))
 | 
				
			||||||
    test_code = db.Column(db.String(36), db.ForeignKey('test.code'))
 | 
					 | 
				
			||||||
    user_code = db.Column(db.String(6), nullable=True)
 | 
					    user_code = db.Column(db.String(6), nullable=True)
 | 
				
			||||||
    start_time = db.Column(db.DateTime, nullable=False)
 | 
					    start_time = db.Column(db.DateTime, nullable=False)
 | 
				
			||||||
    end_time = db.Column(db.DateTime, nullable=True)
 | 
					    end_time = db.Column(db.DateTime, nullable=True)
 | 
				
			||||||
@@ -67,9 +66,8 @@ class Entry(db.Model):
 | 
				
			|||||||
    def complete(self):
 | 
					    def complete(self):
 | 
				
			||||||
        self.end_time = datetime.now()
 | 
					        self.end_time = datetime.now()
 | 
				
			||||||
        write('tests.log', f'Test completed by {self.get_first_name()} {self.get_surname()}.')
 | 
					        write('tests.log', f'Test completed by {self.get_first_name()} {self.get_surname()}.')
 | 
				
			||||||
        test = Test.query.filter_by(code=self.test_code).first()
 | 
					        delta = timedelta(minutes=self.test.time_limit)
 | 
				
			||||||
        delta = timedelta(minutes=test.time_limit)
 | 
					        if not self.test.time_limit or self.end_time <= self.start_time + delta:
 | 
				
			||||||
        if not test.time_limit or self.end_time <= self.start_time + delta:
 | 
					 | 
				
			||||||
            self.status = 'finished'
 | 
					            self.status = 'finished'
 | 
				
			||||||
            self.valid = True
 | 
					            self.valid = True
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,9 +20,10 @@ class Test(db.Model):
 | 
				
			|||||||
    start_date = db.Column(db.DateTime, nullable=True)
 | 
					    start_date = db.Column(db.DateTime, nullable=True)
 | 
				
			||||||
    end_date = db.Column(db.DateTime, nullable=True)
 | 
					    end_date = db.Column(db.DateTime, nullable=True)
 | 
				
			||||||
    time_limit = db.Column(db.Integer, nullable=True)
 | 
					    time_limit = db.Column(db.Integer, nullable=True)
 | 
				
			||||||
    creator = db.Column(db.String(36), db.ForeignKey('user.id'))
 | 
					    creator_id = db.Column(db.String(36), db.ForeignKey('user.id'))
 | 
				
			||||||
    data = db.Column(db.String(36), nullable=False)
 | 
					    data = db.Column(db.String(36), nullable=False)
 | 
				
			||||||
    adjustments = db.Column(JsonEncodedDict, nullable=True)
 | 
					    adjustments = db.Column(JsonEncodedDict, nullable=True)
 | 
				
			||||||
 | 
					    entries = db.relationship('Entry', backref='test')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __repr__(self):
 | 
					    def __repr__(self):
 | 
				
			||||||
        return f'<test with code {self.code} was created by {current_user.get_username()}.>'
 | 
					        return f'<test with code {self.code} was created by {current_user.get_username()}.>'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,6 +16,7 @@ class User(UserMixin, db.Model):
 | 
				
			|||||||
    email = db.Column(db.String(128), nullable=False)
 | 
					    email = db.Column(db.String(128), nullable=False)
 | 
				
			||||||
    reset_token = db.Column(db.String(20), nullable=True)
 | 
					    reset_token = db.Column(db.String(20), nullable=True)
 | 
				
			||||||
    verification_token = db.Column(db.String(20), nullable=True)
 | 
					    verification_token = db.Column(db.String(20), nullable=True)
 | 
				
			||||||
 | 
					    tests = db.relationship('Test', backref='creator')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __repr__(self):
 | 
					    def __repr__(self):
 | 
				
			||||||
        return f'<user {self.username}> was added with <id {self.id}>.'
 | 
					        return f'<user {self.username}> was added with <id {self.id}>.'
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user