vcp-elearning/tkupek_elearning/elearning/models.py

81 lines
2.5 KiB
Python
Raw Normal View History

2016-01-31 16:17:37 +01:00
from __future__ import unicode_literals
import hashlib
import os
2016-02-09 19:51:05 +01:00
2016-01-31 16:17:37 +01:00
from django.db import models
from tinymce.models import HTMLField
2016-01-31 16:17:37 +01:00
2016-01-31 18:19:45 +01:00
2016-03-03 22:00:14 +01:00
def gen_token():
return hashlib.sha1(os.urandom(128)).hexdigest()
2016-01-31 18:19:45 +01:00
class Setting(models.Model):
title = models.CharField(max_length=100, null=True)
footer = models.TextField(null=True)
message_welcome_user = models.TextField(null=True)
message_access_denied = models.TextField(null=True)
message_already_answered = models.TextField(null=True)
text_answer = models.CharField(max_length=100, null=True)
text_solution = models.CharField(max_length=100, null=True)
text_next = models.CharField(max_length=100, null=True)
2016-02-21 17:54:48 +01:00
logo = models.CharField(max_length=256, null=False)
2016-01-31 18:19:45 +01:00
active = models.BooleanField(unique=True, default=False)
2016-03-03 22:00:14 +01:00
token = models.CharField(max_length=40, null=True, default=gen_token)
2016-01-31 18:19:45 +01:00
def __unicode__(self):
2016-01-31 18:19:45 +01:00
return self.title
class Question(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=100, null=True)
text = HTMLField(null=True)
explanation = HTMLField(null=True)
2016-01-31 18:19:45 +01:00
def __unicode__(self):
2016-01-31 18:19:45 +01:00
return self.title
class Option(models.Model):
text = models.CharField(max_length=256, null=True)
2016-01-31 18:19:45 +01:00
correct = models.BooleanField(null=False, default=False)
question = models.ForeignKey(Question, on_delete=models.CASCADE, null=False)
def __unicode__(self):
2016-02-09 19:51:05 +01:00
return self.text
class User(models.Model):
token = models.CharField(max_length=40, null=True, default=gen_token, unique=True)
2016-02-09 19:51:05 +01:00
name = models.CharField(max_length=100, null=False)
last_seen = models.DateTimeField(null=True, blank=True)
2016-02-09 19:51:05 +01:00
def __unicode__(self):
2016-02-09 19:51:05 +01:00
return self.name
class UserAnswer(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=False)
question = models.ForeignKey(Question, on_delete=models.CASCADE, null=False)
correct = models.NullBooleanField(null=True)
2016-02-09 20:46:04 +01:00
def __unicode__(self):
return str(self.user) + " - " + str(self.question.id)
2016-02-09 19:51:05 +01:00
class Meta:
unique_together = (('user', 'question'),)
class UserAnswerOptions(models.Model):
user_answer = models.ForeignKey(UserAnswer, on_delete=models.CASCADE, null=False)
option = models.ForeignKey(Option, on_delete=models.CASCADE, null=False)
class Meta:
unique_together = (('user_answer', 'option'),)
def __unicode__(self):
return str(self.user_answer) + " - " + str(self.option)