Exemple #1
0
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))
Exemple #2
0
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:
Exemple #3
0
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))