class GroupManager(object): def __init__(self, assignment_id, group_id=None): self.assignment_id = assignment_id if group_id: self.group = AssignmentGroup.objects.get(parentnode_id=assignment_id, id=group_id) else: self.group = AssignmentGroup(parentnode_id=assignment_id) self.serializer = GroupSerializer(self.group) def get_group_from_db(self): return AssignmentGroup.objects.get(id=self.group.id) def update_group(self, name, is_open): self.group.name = name self.group.is_open = is_open self.group.save() def _create_tag(self, tag): self.group.tags.create(tag=tag) def update_tags(self, tagdicts): AssignmentGroupTag.objects.filter(assignment_group=self.group).delete() for tagdict in tagdicts: self._create_tag(tag=tagdict["tag"]) def _get_user(self, user_id): try: return User.objects.get(id=user_id) except ObjectDoesNotExist, e: raise ValidationError("User with ID={0} does not exist".format(user_id))
class GroupManager(object): def __init__(self, user, assignment=None, group=None, createmode=False, usercache=None): self.user = user self.createmode = createmode self.usercache = usercache if group: self.group = group elif assignment: self.group = AssignmentGroup(parentnode=assignment) else: raise ValueError("One of assignment or group must be supplied.") self.serializer = GroupSerializer(self.group) def get_group_from_db(self): return AssignmentGroup.objects.get(id=self.group.id) def update_group(self, name, is_open): self.group.name = name self.group.is_open = is_open self.group.save() def create_first_deadline_if_available(self): assignment = self.group.parentnode first_deadline = assignment.first_deadline if first_deadline and assignment.delivery_types != NON_ELECTRONIC: self.group.deadlines.create(deadline=first_deadline) def _create_tag(self, tag): self.group.tags.create(tag=tag) def update_tags(self, tagdicts): if not self.createmode: AssignmentGroupTag.objects.filter(assignment_group=self.group).delete() for tagdict in tagdicts: self._create_tag(tag=tagdict["tag"]) def _get_user(self, user_id): if self.usercache != None: try: return self.usercache[user_id] except KeyError: pass try: user = User.objects.get(id=user_id) except ObjectDoesNotExist, e: raise ValidationError("User with ID={0} does not exist".format(user_id)) else:
class GroupManager(object): def __init__(self, user, assignment_id, group_id=None): self.user = user self.assignment_id = assignment_id if group_id: self.group = AssignmentGroup.objects.get(parentnode_id=assignment_id, id=group_id) else: self.group = AssignmentGroup(parentnode_id=assignment_id) self.serializer = GroupSerializer(self.group) def get_group_from_db(self): return AssignmentGroup.objects.get(id=self.group.id) def update_group(self, name, is_open): self.group.name = name self.group.is_open = is_open self.group.save() def create_first_deadline_if_available(self): assignment = self.group.parentnode first_deadline = assignment.first_deadline if first_deadline and assignment.delivery_types != NON_ELECTRONIC: self.group.deadlines.create(deadline=first_deadline) def _create_tag(self, tag): self.group.tags.create(tag=tag) def update_tags(self, tagdicts): AssignmentGroupTag.objects.filter(assignment_group=self.group).delete() for tagdict in tagdicts: self._create_tag(tag=tagdict['tag']) def _get_user(self, user_id): try: return User.objects.get(id=user_id) except ObjectDoesNotExist, e: raise ValidationError('User with ID={0} does not exist'.format(user_id))