Пример #1
0
 def add(self, subject_name, checkpoints_json):
     self.add_base_fields(checkpoints_json)
     self.add_base_checkpoint(checkpoints_json)
     subject = Subject.query.filter_by(name=subject_name).first()
     if subject is None:
         subject = Subject(name=subject_name)
         subject.add_to_db()
     checkpoints = subject.checkpoints
     for checkpoint_json in checkpoints_json:
         checkpoint_name = checkpoint_json['name']
         checkpoint = checkpoints.filter_by(name=checkpoint_name).first()
         if checkpoint is None:
             checkpoint = Checkpoint(name=checkpoint_name)
             checkpoints.append(checkpoint)
         fields = checkpoint.fields
         for field_json in checkpoint_json['fields']:
             field_name = field_json['name']
             field = fields.filter_by(name=field_name).first()
             if field is None:
                 field = CheckpointField(name=field_name)
                 fields.append(field)
             field.type = field_json.get('type', None)
             field.is_hidden = field_json.get('is_hidden', False)
     db.session.commit()
     checkpoints = subject.checkpoints.all()
     return Checkpoint.json_list(checkpoints)
Пример #2
0
 def add_association(self, username, subject_name, group_id):
     tutor = self.find_tutor_by_username(username)
     if tutor.tgs.filter_by(subject_name=subject_name, group_id=group_id).first():
         raise AssociationExist(subject_name=subject_name, group_id=group_id)
     subject = Subject.find_by_name(subject_name)
     if subject is None:
         subject = Subject(name=subject_name)
         subject.add_to_db()
     group = Group.find_by_id(group_id)
     if group is None: 
         group = Group(id=group_id)
         group.add_to_db()
     association = AssociationTGS()
     association.subject = subject
     association.group = group
     tutor.tgs.append(association)
     db.session.commit()