""" WE'RE USING MIGRATIONS! If you make changes to this model, be sure to create an appropriate migration file and check it in at the same time as your model changes. To do that, 1. Go to the mitx dir 2. ./manage.py schemamigration courseware --auto description_of_your_change 3. Add the migration file created in mitx/courseware/migrations/ """ from django.db import models from django.contrib.auth.models import User class StudentModule(models.Model): # For a homework problem, contains a JSON # object consisting of state MODULE_TYPES = (('problem','problem'), ('video','video'), ('html','html'), ) ## These three are the key for the object module_type = models.CharField(max_length=32, choices=MODULE_TYPES, default='problem', db_index=True) module_id = models.CharField(max_length=255, db_index=True) # Filename for homeworks, etc. student = models.ForeignKey(User, db_index=True) class Meta: unique_together = (('student', 'module_id'),) ## Internal state of the object state = models.TextField(null=True, blank=True) ## Grade, and are we done? grade = models.FloatField(null=True, blank=True, db_index=True) #max_grade = models.FloatField(null=True, blank=True) # DONE_TYPES = (('done','DONE'), # Finished # ('incomplete','NOTDONE'), # Not finished # ('na','NA')) # Not applicable (e.g. vertical) # done = models.CharField(max_length=16, choices=DONE_TYPES) created = models.DateTimeField(auto_now_add=True, db_index=True) modified = models.DateTimeField(auto_now=True, db_index=True) def __unicode__(self): return self.module_type+'/'+self.student.username+"/"+self.module_id+'/'+str(self.state)[:20]