class StateSave(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=200, null=True) description = models.CharField(max_length=400, null=True) save_time = models.DateTimeField(auto_now=True, db_index=True) create_time = models.DateTimeField(auto_now_add=True) save_id = models.UUIDField(default=uuid.uuid4) data_dump = models.TextField(null=False) shared = models.BooleanField(default=False) owner = models.ForeignKey(get_user_model(), null=True, on_delete=models.CASCADE) base64_image = models.ImageField(upload_to='circuit_images', storage=file_storage, null=True) version = models.CharField(max_length=20, null=False) branch = models.CharField(max_length=20, null=False) is_arduino = models.BooleanField(default=False, null=False) esim_libraries = models.ManyToManyField(Library) project = models.ForeignKey(to=Project, on_delete=models.SET_NULL, null=True) def save(self, *args, **kwargs): super(StateSave, self).save(*args, **kwargs) def __str__(self): return self.name
class Comment(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True) author = models.ForeignKey('userAuth.User', null=True, on_delete=models.SET_NULL, editable=False, related_name='comment') dateTimePosted = models.DateTimeField(auto_now_add=True, editable=False) dateTimeEdited = models.DateTimeField(auto_now=True, null=True) parentPost = models.ForeignKey('Post', null=True, on_delete=models.CASCADE, editable=True, related_name='comment') content = models.OneToOneField(Content, on_delete=models.CASCADE, related_name='comment') points = models.IntegerField(default=0) likers = models.ArrayReferenceField(to='userAuth.User', on_delete=models.SET_NULL, blank=True, null=True, related_name='+') dislikers = models.ArrayReferenceField(to='userAuth.User', on_delete=models.SET_NULL, blank=True, null=True, related_name='+') def __str__(self): return "Reply to: {}".format(self.post.title)
class Classes(models.Model): class_id = models.UUIDField(primary_key=True, blank=False, default=uuid.uuid4, editable=False) credit = models.IntegerField(blank=False, verbose_name='credit') section_id = models.PositiveSmallIntegerField( verbose_name="class section ID", blank=False) start_time = models.TimeField(auto_now=False, blank=False, verbose_name="class start time") end_time = models.TimeField(auto_now=False, blank=False, verbose_name="class end time") course_part = models.ForeignKey(to='Courses', on_delete=models.CASCADE, verbose_name='Course part') grade_scale = models.ForeignKey(to='GpaScale', on_delete=models.CASCADE, verbose_name='Grade Scale', blank=False) weights = models.ForeignKey(to='Weights', on_delete=models.CASCADE, verbose_name='Grade weights', blank=False) students = models.ArrayReferenceField(to=Student, on_delete=models.CASCADE) teachers = models.ArrayReferenceField(to=Teacher, on_delete=models.CASCADE) def __str__(self): return str(self.course_part) + '_' + str(self.section_id)
class GenericModel(models.Model): big_int = models.BigIntegerField() bool = models.BooleanField() char = models.CharField(max_length=20) comma_int = models.CommaSeparatedIntegerField() date = models.DateField() date_time = models.DateTimeField() decimal = models.DecimalField(max_digits=10, decimal_places=5) email = models.EmailField() float = models.FloatField() integer = models.IntegerField() null_bool = models.NullBooleanField() pos_int = models.PositiveIntegerField() pos_small_int = models.PositiveSmallIntegerField() slug = models.SlugField() small_int = models.SmallIntegerField() text = models.TextField() time = models.TimeField() url = models.URLField() ip = models.GenericIPAddressField() uuid = models.UUIDField() # TODO: add these # basic_file = models.FileField() # image = models.ImageField() objects = models.DjongoManager()
class Course(models.Model): class Meta: unique_together = [['courseCode', 'university']] id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True) courseCode = models.CharField(max_length=7) name = models.CharField(max_length=75) university = models.CharField(max_length=4, editable=False, choices=UNIVERSITY_CHOICES) description = models.CharField(max_length=255, blank=True) creator = models.ForeignKey('userAuth.User', on_delete=models.SET_NULL, null=True, editable=False, related_name='course') posts = models.ArrayReferenceField(to='Post', on_delete=models.SET_NULL, blank=True, null=True, related_name='+') members = models.ArrayReferenceField(to='userAuth.User', on_delete=models.SET_NULL, blank=True, null=True, related_name='+') def __str__(self): return "{}: {}".format(self.university, self.courseCode)
class User(AbstractUser): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True) username = models.CharField(blank=True, null=True, max_length=50) email = models.EmailField(('email address'), unique=True) first_name = models.CharField(blank=False, max_length=50) last_name = models.CharField(blank=False, max_length=50) clout = models.IntegerField(default=0) courses = models.ArrayReferenceField(to='posts.Course', on_delete=models.SET_NULL, blank=True, null=True, related_name='+') posts = models.ArrayReferenceField(to='posts.Post', on_delete=models.SET_NULL, blank=True, null=True, related_name='+') comments = models.ArrayReferenceField(to='posts.Comment', on_delete=models.SET_NULL, blank=True, null=True, related_name='+') isTutor = models.BooleanField(default=False) # Overwriting default username field in Django's AbstractUser class. Allows for unique check for email and prevents usernames from being required. USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username', 'first_name', 'last_name'] def __str__(self): return "{} {}".format(self.first_name, self.last_name)
class User(models.Model): username = models.CharField(max_length=200) password = models.CharField(max_length=200) first_name = models.CharField(max_length=20) last_name = models.CharField(max_length=20) uid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) account_creation_date = models.DateTimeField(auto_now_add=True, null=True, blank=True, editable=True) linked_platforms = models.ArrayModelField(model_container=LinkedPlatform, null=True) notifications = models.ArrayModelField(model_container=Notification, null=True) summary_stats = models.ArrayModelField(model_container=SummaryStats, null=True) def __str__(self): return "UID: " + str( self.uid ) + ", Username: "******", Password: " + self.password
class TestUUIDForeignKey(models.Model): id = models.UUIDField(primary_key=True, unique=True, editable=False, default=uuid.uuid4) name = models.CharField(max_length=50) test_fk = models.ForeignKey(TestUUIDModel, on_delete=models.CASCADE)
class Assignment(models.Model): assignment_id = models.UUIDField(primary_key=True, blank=False, default=uuid.uuid4, editable=False) class_part = models.ForeignKey(to="Classes", on_delete=models.CASCADE) assignment_type = models.CharField(choices=assignment_choices, max_length=50) document = models.ForeignKey(to='Documents', blank=True, on_delete=models.CASCADE) name = models.CharField(max_length=300, blank=False, verbose_name='assignment name') available_at = models.DateTimeField( verbose_name='assignment available start date', blank=True) available_end = models.DateTimeField( verbose_name='assignment available end date', blank=False) graded = models.BooleanField(verbose_name='graded', blank=False) total_points = models.IntegerField( blank=False, verbose_name='total points in assignment') points_earned = models.IntegerField( blank=True, verbose_name='total points earned in assignment') def __str__(self): return self.name
class TestUUIDM2M(models.Model): id = models.UUIDField(primary_key=True, unique=True, editable=False, default=uuid.uuid4) name = models.CharField(max_length=50) test_m2m = models.ManyToManyField(TestUUIDModel)
class Route(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) route_data = models.TextField(null=True) created_at = models.DateTimeField(auto_now_add=True) uuid = models.TextField(null=True) def __str__(self): return str(self.id)
class Pack(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) order = models.ForeignKey(Order, on_delete=models.CASCADE) model = models.ManyToManyField(VehicleModel) price = models.FloatField() quantity = models.IntegerField(default=0) def __str__(self): return self.model.vehiclemodel.brand
class Order(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) client_name = models.CharField(max_length=200) created_at = models.DateTimeField(auto_now_add=True) last_modified_at = models.DateTimeField() total_money = models.FloatField(default=0, ) def __str__(self): return self.client_name
class Processing(models.Model): file_id = models.UUIDField(primary_key=True, default=uuid.uuid4()) schema = models.ForeignKey(Schema, on_delete=models.CASCADE, default=None) date = models.DateTimeField(default=datetime.now(), editable=False) file_ready = models.BooleanField(default=False) rows = models.IntegerField() def __str__(self): return "schema %s with %s rows" % (self.schema.id, self.rows)
class PlayerScore(models.Model): player_uuid = models.UUIDField(primary_key=False, default=uuid.uuid4, editable=False, unique=True) score = models.FloatField() description = models.CharField() class Meta: abstract = True
class Job(models.Model): _id = models.ObjectIdField() external_id = models.UUIDField(default=uuid.uuid4, editable=False) status = EnumField(JobStatus,max_length=17) result = EmbeddedDictField(model_container=dict) created_at = models.DateTimeField(default=datetime.now) modified_at = models.DateTimeField(default=datetime.now) def __str__(self): return self.external_id
class inferRequests(models.Model): txnID = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) fileHashes = customListField() DLmodel = models.CharField(default='not_chosen', max_length=100) authToken = models.CharField(default='not yet implemented', max_length=100) status = models.IntegerField(choices=infer_requests_status_choices, default=0) nos_hashes_submitted = models.IntegerField(default=0) nos_hashes_inferred = models.IntegerField(default=0) class Meta: db_table = 'infer_requests'
class Task(models.Model): # User details for auth to be stored along with task. # user = models.ForeignKey(User, on_delete=models.CASCADE) task_time = models.DateTimeField(auto_now=True, db_index=True) task_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) def save(self, *args, **kwargs): super(Task, self).save(*args, **kwargs)
class GpaScale(models.Model): gpa_id = models.UUIDField(primary_key=True, blank=False, default=uuid.uuid4, editable=False) name = models.CharField(default="default gpa scale", blank=False, max_length=300) gpa_scale = JSONField(blank=False, verbose_name='gpa_scale') def __str__(self): return self.name
class Weights(models.Model): weight_id = models.UUIDField(primary_key=True, blank=False, default=uuid.uuid4, editable=False) name = models.CharField(default="default weights scale", blank=False, max_length=300) weights = JSONField(blank=False, verbose_name='weights') def __str__(self): return self.name
class StateSave(models.Model): save_time = models.DateTimeField(auto_now=True, db_index=True) save_id = models.UUIDField( primary_key=True, default=uuid.uuid4) data_dump = models.TextField(null=False) shared = models.BooleanField(default=False) owner = models.ForeignKey( get_user_model(), null=True, on_delete=models.CASCADE) def save(self, *args, **kwargs): super(StateSave, self).save(*args, **kwargs)
class Url(models.Model): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) long = models.CharField(default='', max_length=1000) short = models.CharField(default='', max_length=10) created_at = models.DateTimeField(default=now) expire_at = models.IntegerField(default=expire_date_milliseconds) ip = models.CharField(default='', max_length=100) domain = models.CharField(default='', max_length=100) redirect_number = models.IntegerField(default=0) verbose_name = "urls" def __str__(self): return self.long
class Answer(models.Model): id = models.UUIDField(default=uuid.uuid4) content = models.CharField(max_length=255, verbose_name="Текст ответа") isTrue = models.BooleanField(default=False, verbose_name="Правильный ответ") class Meta: abstract = True verbose_name = 'Ответ' verbose_name_plural = 'Ответ' def __str__(self): return f'{self.id}'
class Player(models.Model): uuid = models.UUIDField(primary_key=False, default=uuid.uuid4, editable=False, unique=True) name = models.CharField(max_length=200) email = models.EmailField() class Meta: abstract = True def __str__(self): return self.name
class Result(models.Model): questionnaire_id = models.UUIDField() count_questionnaire_answers = models.IntegerField(default=0) count_questionnaire_true_answers = models.IntegerField(default=0) count_correct_answers = models.IntegerField(default=0) count_answers = models.IntegerField(default=0) count_incorrect_answers = models.IntegerField(default=0) class Meta: abstract = True def __str__(self): return f'{self.questionnaire_id}'
class Courses(models.Model): course_id = models.UUIDField(primary_key=True, blank=False, default=uuid.uuid4, editable=False) course_code = models.PositiveSmallIntegerField(unique=True) name = models.CharField(blank=False, max_length=200, verbose_name="course name") start_date = models.DateTimeField(auto_now=False, verbose_name="start date") end_date = models.DateTimeField(auto_now=False, verbose_name="end date") def __str__(self): return self.name
class Citizen(models.Model): class Meta: ordering = ('creation_date',) citizen_id = models.UUIDField(primary_key=True, default=lambda: uuid4().hex, editable=False) first_name = models.CharField(max_length=255, blank=False, null=False) last_name = models.CharField(max_length=255, blank=False, null=False) date_of_birth = models.DateField(blank=False, null=False) address = models.CharField(max_length=255, blank=False, null=False) marriage = models.OneToOneField(Marriage, on_delete=models.CASCADE, related_name='citizen', blank=False, null=False) passings = models.ArrayModelField(model_container=Passing, blank=False, null=False, default=[]) phone_number = models.CharField(max_length=255, blank=False, null=False) height = models.IntegerField(blank=False, null=False) nationality = models.CharField(max_length=255, blank=False, null=False) color_of_eyes = models.CharField(max_length=255, blank=False, null=False) creation_date = models.DateTimeField(default=datetime.now)
class spiceFile(models.Model): file_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) file = models.FileField(storage=FileSystemStorage( location=settings.MEDIA_ROOT)) upload_time = models.DateTimeField(auto_now=True, db_index=True) # User details for auth to be stored along with task. # owner = models.ForeignKey('auth.User') task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name='file') def save(self, *args, **kwargs): super(spiceFile, self).save(*args, **kwargs)
class StateSave(models.Model): name = models.CharField(max_length=200, null=True) description = models.CharField(max_length=400, null=True) save_time = models.DateTimeField(auto_now=True, db_index=True) create_time = models.DateTimeField(auto_now_add=True) save_id = models.UUIDField(primary_key=True, default=uuid.uuid4) data_dump = models.TextField(null=False) shared = models.BooleanField(default=False) owner = models.ForeignKey(get_user_model(), null=True, on_delete=models.CASCADE) base64_image = models.ImageField(upload_to='circuit_images', storage=file_storage, null=True) is_arduino = models.BooleanField(default=False, null=False) def save(self, *args, **kwargs): super(StateSave, self).save(*args, **kwargs)
class Lesson(models.Model): CHOICES = ( ('YT', 'YouTube'), ('FB', 'Facebook'), ('OK', 'Одноклассники'), ('DM', 'Dailymotion'), ('VM', 'Vimeo'), ) lesson_id = models.UUIDField(editable=False, default=uuid.uuid4, unique=True) title = models.CharField(max_length=255) published_date = models.DateTimeField() categories = models.TextField() content = models.TextField() video_type = models.CharField(max_length=255, choices = CHOICES, default=1) video_id = models.CharField(max_length=255, blank=True) published_by = models.ForeignKey(User, on_delete=models.CASCADE, default=1)