class Assessment(Model): atitle = TextField() adescription = TextField() questions = ArrayField() scores = ArrayField() class Meta: table = 'assessments'
class Grade(Model): student = TextField() reportid = IntegerField() points = ArrayField() feedback = ArrayField() needsgrading = TextField() class Meta: table = 'grades'
class Question(Model): qkind = TextField() qtitle = TextField() qtext = TextField() answers = ArrayField() correct = ArrayField() feedback = TextField() class Meta: table = 'questions'
class Lab(Model): name = TextField() description = TextField() owner_id = IntegerField() scenario_id = IntegerField() status = EnumField() preassessment_id = IntegerField() postassessment_id = IntegerField() allowed_attempts = ArrayField() error_msgs = ArrayField() class Meta: table = 'labs'
class Router(Model): name = TextField() public_ip = TextField() status = EnumField() password = TextField() x = IntegerField() y = IntegerField() gid = TextField() links = ArrayField() cloud_attrs = JsonBField() slice_id = IntegerField() configurations = ArrayField() image = TextField() flavor = JsonBField() class Meta: table = 'routers'
class Scenario(Model): name = TextField() description = TextField() owner_id = IntegerField() is_public = BooleanField() sg_rules = ArrayField() # ALTER TABLE public.scenarios ADD sg_rules TEXT[] DEFAULT array[]::TEXT[]; topo = JsonBField() class Meta: table = 'scenarios'
class Lab(Model): name = TextField() description = TextField() owner_id = IntegerField() scenario_id = IntegerField() status = EnumField() error_msgs = ArrayField() class Meta: table = 'labs'
class Report(Model): student = TextField() labname = TextField() assessmentid = TextField() answers = ArrayField() starttime = IntegerField() endtime = IntegerField() pre_post = IntegerField() attempt_num = IntegerField() class Meta: table = 'reports'
class UserInfo(Model): user_id = IntegerField() permission_groups = ArrayField() class Meta: table = 'userinfos'