Skip to content

Instantly share code, notes, and snippets.

@om2c0de
Created February 2, 2023 10:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save om2c0de/512ec8880a0070b621ac9a069ea1ca8d to your computer and use it in GitHub Desktop.
Save om2c0de/512ec8880a0070b621ac9a069ea1ca8d to your computer and use it in GitHub Desktop.
MTC New tables
from django.db import models
from apps.evidences.models import Evidences
from apps.learners.models import Learners
class CreditArchitectures(models.Model):
"""
Модель школы профильная
"""
title = models.CharField(max_length=255)
description = models.TextField(blank=True, null=True)
publisher = models.CharField(max_length=255, blank=True, null=True)
schoolid = models.ForeignKey('schools.Schools', models.DO_NOTHING, db_column='schoolId', blank=True, null=True) # Field name made lowercase.
downloads = models.IntegerField(blank=True, null=True)
views = models.IntegerField(blank=True, null=True)
reviews = models.IntegerField(blank=True, null=True)
rating = models.DecimalField(max_digits=65535, decimal_places=65535, blank=True, null=True)
iconurl = models.CharField(db_column='iconUrl', max_length=255, blank=True, null=True) # Field name made lowercase.
createdat = models.DateTimeField(db_column='createdAt') # Field name made lowercase.
updatedat = models.DateTimeField(db_column='updatedAt') # Field name made lowercase.
isshared = models.BooleanField(db_column='isShared') # Field name made lowercase.
typesenabled = models.BooleanField(db_column='typesEnabled') # Field name made lowercase.
def __str__(self):
return self.title
class Meta:
managed = False
db_table = 'CreditArchitectures'
class CreditAreas(models.Model):
title = models.CharField(max_length=255)
description = models.TextField(blank=True, null=True)
position = models.IntegerField(blank=True, null=True)
creditarchitectureid = models.ForeignKey(CreditArchitectures, models.DO_NOTHING, db_column='creditArchitectureId') # Field name made lowercase.
createdat = models.DateTimeField(db_column='createdAt') # Field name made lowercase.
updatedat = models.DateTimeField(db_column='updatedAt') # Field name made lowercase.
archivedat = models.DateTimeField(db_column='archivedAt', blank=True, null=True) # Field name made lowercase.
typicalnumofadvancedcredits = models.IntegerField(db_column='typicalNumOfAdvancedCredits', blank=True, null=True) # Field name made lowercase.
thresholdnumofadvancedcredits = models.IntegerField(db_column='thresholdNumOfAdvancedCredits', blank=True, null=True) # Field name made lowercase.
def __str__(self):
return self.title
class Meta:
managed = False
db_table = 'CreditAreas'
class CreditLabels(models.Model):
creditid = models.ForeignKey('credits.Credits', models.DO_NOTHING, db_column='creditId', blank=True, null=True) # Field name made lowercase.
labelid = models.ForeignKey('labels.Labels', models.DO_NOTHING, db_column='labelId', blank=True, null=True) # Field name made lowercase.
createdat = models.DateTimeField(db_column='createdAt') # Field name made lowercase.
updatedat = models.DateTimeField(db_column='updatedAt') # Field name made lowercase.
class Meta:
managed = False
db_table = 'CreditLabels'
unique_together = (('creditid', 'labelid'),)
class CreditTypes(models.Model):
code = models.CharField(unique=True, max_length=255)
name = models.CharField(max_length=255, blank=True, null=True)
createdat = models.DateTimeField(db_column='createdAt') # Field name made lowercase.
updatedat = models.DateTimeField(db_column='updatedAt') # Field name made lowercase.
def __str__(self):
return self.name
class Meta:
managed = False
db_table = 'CreditTypes'
class Credits(models.Model):
title = models.CharField(max_length=255)
description = models.TextField(blank=True, null=True)
creditareaid = models.ForeignKey(CreditAreas, models.DO_NOTHING, db_column='creditAreaId') # Field name made lowercase.
typeid = models.ForeignKey(CreditTypes, models.DO_NOTHING, db_column='typeId') # Field name made lowercase.
createdat = models.DateTimeField(db_column='createdAt') # Field name made lowercase.
updatedat = models.DateTimeField(db_column='updatedAt') # Field name made lowercase.
position = models.IntegerField(blank=True, null=True)
archivedat = models.DateTimeField(db_column='archivedAt', blank=True, null=True) # Field name made lowercase.
def __str__(self):
return self.title
class Meta:
managed = False
db_table = 'Credits'
class Preset(models.Model):
"""Пре-сет для архитектуры"""
title = models.CharField(max_length=255) # 7-steps
architecture = models.ForeignKey(CreditArchitectures, related_name="presets", on_delete=models.CASCADE, blank=True, null=True) # MBA Model
def __str__(self):
return self.title
class PresetStep(models.Model):
"""Шаг пре-сета архитектуры"""
title = models.CharField(max_length=255, blank=True, null=True) # Step 1
description = models.CharField(max_length=255, blank=True, null=True) # Tips for step 1
preset = models.ForeignKey(Preset, related_name='steps', on_delete=models.CASCADE, blank=True, null=True) # 7-steps
def __str__(self):
return self.title
class Meta:
unique_together = ('title', 'preset')
class PresetStepProgress(models.Model):
"""Прогресс по шагу для конкретного ученика"""
step = models.ForeignKey(PresetStep, related_name='preset_progresses', on_delete=models.CASCADE) # Step 1
learner = models.ForeignKey(Learners, related_name='preset_progresses', on_delete=models.CASCADE) # @username
def __str__(self):
return f"{self.step} of {self.learner}"
class Meta:
unique_together = ('step', 'learner')
class PresetStepCreditInformation(models.Model):
"""Информация о шаге для конкретного кредита"""
step = models.OneToOneField(PresetStep, on_delete=models.CASCADE)
credit = models.OneToOneField(Credits, on_delete=models.CASCADE)
description = models.CharField(max_length=255, blank=True, null=True)
def __str__(self):
return self.description
class PresetStepCredit(models.Model):
"""Кредит закрепленный к конкретному шагу конкретного ученика"""
progress = models.ForeignKey(PresetStepProgress, related_name='credits', on_delete=models.CASCADE) # @username's progress
credit = models.ForeignKey(Credits, on_delete=models.CASCADE) # Math
def __str__(self):
return f"{self.progress.learner}'s {self.credit.title}"
class Meta:
unique_together = ('progress', 'credit')
class PresetStepCreditEvidence(models.Model):
"""Доказательства прикреплённые к кредитам для конкретного шага конкретного ученика"""
credit = models.ForeignKey(PresetStepCredit, related_name='+', on_delete=models.CASCADE) # @username's Math
evidence = models.ForeignKey(Evidences, related_name='+', on_delete=models.CASCADE) # @username's evidences
def __str__(self):
return f'{self.evidence.title} for {self.credit.credit.title} uploaded by {self.credit.progress.learner.id.email}'
class Meta:
unique_together = ('credit', 'evidence')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment