Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Company(models.Model):
- name = models.CharField(max_length=25)
- is_deleted = models.BooleanField(default=False)
- def __unicode__(self):
- return self.name
- class Meta:
- verbose_name_plural = "companies"
- class Category(models.Model):
- name = models.CharField(max_length=25, unique=True)
- is_deleted = models.BooleanField(default=False)
- def __unicode__(self):
- return self.name
- class Meta:
- verbose_name_plural = "categories"
- class Question(models.Model):
- question = models.CharField(max_length=200)
- category = models.ManyToManyField('Category')
- type = models.CharField(max_length=1, choices=QUESTION_TYPES)
- is_deleted = models.BooleanField(default=False)
- def __unicode__(self):
- return self.question
- class QuestionChoice(models.Model):
- question = models.ForeignKey('Question')
- choice = models.CharField(max_length=100)
- is_correct = models.BooleanField()
- def __unicode__(self):
- return self.choice
- class Meta:
- verbose_name_plural = "questions choices"
- class UserAnswer(models.Model):
- user = models.ForeignKey(User)
- assessment = models.ForeignKey('Assessment')
- date = models.DateTimeField()
- answer = models.ManyToManyField('QuestionChoice')
- def __unicode__(self):
- return self.user.username
- class Meta:
- verbose_name_plural = "users answers"
- class AssessmentQuestion(models.Model):
- assessment = models.ForeignKey('Assessment')
- question = models.ForeignKey('Question')
- order = models.IntegerField()
- def __unicode__(self):
- return self.order
- class Meta:
- verbose_name_plural = "assessments questions"
- class Assessment(models.Model):
- name = models.CharField(max_length=50)
- course = models.ForeignKey('Course')
- questions = models.ManyToManyField('Question', through='AssessmentQuestion')
- def __unicode__(self):
- return self.name
- class CompanyCourse(models.Model):
- course = models.ForeignKey('Course')
- company = models.ForeignKey('Company')
- start_date = models.DateField()
- end_date = models.DateField()
- def __unicode__(self):
- return 'date range: %s - %s' % (self.start_date, self.end_date)
- class Meta:
- verbose_name_plural = "companies courses"
- class Course(models.Model):
- name = models.CharField(max_length=50, unique=True)
- company = models.ManyToManyField(Company, through='CompanyCourse')
- course_page = models.ForeignKey(Page) # reference to the top page of the course
- def save(self, *args, **kwargs):
- obj = super(Course, self).save(*args, **kwargs)
- parent = Title.objects.get(slug=settings.CMS_COURSES_SLUG).page
- author = User.objects.all()[0]
- page = Page(author=author, parent=parent)
- page.save()
- title = Title.objects.create(language='en', title=self.name,
- slug=self.slug, path='/%s/' % self.slug, page=page)
- return obj
- def delete(self):
- page = Title.objects.get(slug=self.slug).page
- page.delete()
- super(Course, self).delete()
- @property
- def slug(self):
- return re.sub('[^a-zA-Z-]', '-', self.name)
- def __unicode__(self):
- return self.name
- class CourseUser(models.Model):
- user = models.ForeignKey(User)
- course = models.ForeignKey('Course')
- next_slide = models.ForeignKey(Page, null=True, blank=True)
- start_datetime = models.DateTimeField(null=True, blank=True)
- finish_datetime = models.DateTimeField(null=True, blank=True)
- def get_status(self):
- if not self.start_datetime:
- return 'new'
- if self.finish_datetime:
- return 'finished'
- else:
- return 'in-progress'
- def __unicode__(self):
- return "%s - %s" % (self.user, self.course)
- class SlideVisit(models.Model):
- user = models.ForeignKey(User)
- course = models.ForeignKey('Course')
- slide = models.ForeignKey(Page)
- visited = models.DateTimeField(null=True, blank=True)
- def __unicode__(self):
- return "%s - %s" % (self.slide, self.visited)
Advertisement
Add Comment
Please, Sign In to add comment