コード例 #1
0
ファイル: testhelper.py プロジェクト: Nasmi1/devilry-django
    def _create_or_add_assignment(self, assignment_name, parentnode, extras):
        # NOTE: Set default publishing_time two seconds after start_time to
        # make sure it evaluates as "within" the period.
        publishing_time = parentnode.start_time + timedelta(seconds=2)

        if extras['delivery_types']:
            deliverytype_alias = extras['delivery_types'][0]
            typemap = {'electronic': deliverytypes.ELECTRONIC,
                       'nonelectronic': deliverytypes.NON_ELECTRONIC}
            delivery_types = typemap[deliverytype_alias]
        else:
            delivery_types = deliverytypes.ELECTRONIC

        assignment = Assignment(parentnode=parentnode, short_name=assignment_name,
                                long_name=assignment_name.capitalize(), publishing_time=publishing_time,
                                delivery_types=delivery_types,
                                max_points=200)
        try:
            assignment.full_clean()
            assignment.save()
        except ValidationError:
            assignment = Assignment.objects.get(parentnode=parentnode,
                                                short_name=assignment_name)

        # add the users (only admins allowed in subject)
        for admin in extras['admin']:
            assignment.admins.add(self._create_or_add_user(admin))

        if extras['pub']:
            assignment.publishing_time += timedelta(days=int(extras['pub'][0]))

        if extras['anon']:
            if extras['anon'][0] == 'true':
                assignment.anonymous = True
            elif extras['anon'][0] == 'false':
                assignment.anonymous = False
            else:
                raise ValueError("anon must be 'true' or 'false'")

        if extras['ln']:
            assignment.long_name = extras['ln'][0]

        if extras['first_deadline']:
            days = int(extras['first_deadline'][0])
            assignment.first_deadline = assignment.publishing_time
            if days == 0:
                assignment.first_deadline += timedelta(seconds=1)
            else:
                assignment.first_deadline += timedelta(days=days)

        assignment.full_clean()
        assignment.save()

        vars(self)[parentnode.parentnode.short_name + '_' +  # subject
                   parentnode.short_name + '_' +  # period
                   assignment.short_name] = assignment
        return assignment
コード例 #2
0
ファイル: testhelper.py プロジェクト: kristtuv/devilry-django
    def _create_or_add_assignment(self, assignment_name, parentnode, extras):
        # NOTE: Set default publishing_time two seconds after start_time to
        # make sure it evaluates as "within" the period.
        publishing_time = parentnode.start_time + timedelta(seconds=2)

        if extras['delivery_types']:
            deliverytype_alias = extras['delivery_types'][0]
            typemap = {'electronic': deliverytypes.ELECTRONIC,
                       'nonelectronic': deliverytypes.NON_ELECTRONIC}
            delivery_types = typemap[deliverytype_alias]
        else:
            delivery_types = deliverytypes.ELECTRONIC

        assignment = Assignment(parentnode=parentnode, short_name=assignment_name,
                                long_name=assignment_name.capitalize(), publishing_time=publishing_time,
                                delivery_types=delivery_types,
                                max_points=200)
        try:
            assignment.full_clean()
            assignment.save()
        except ValidationError:
            assignment = Assignment.objects.get(parentnode=parentnode,
                                                short_name=assignment_name)

        # add the users (only admins allowed in subject)
        for admin in extras['admin']:
            assignment.admins.add(self._create_or_add_user(admin))

        if extras['pub']:
            assignment.publishing_time += timedelta(days=int(extras['pub'][0]))

        if extras['anon']:
            if extras['anon'][0] == 'true':
                assignment.anonymous = True
            elif extras['anon'][0] == 'false':
                assignment.anonymous = False
            else:
                raise ValueError("anon must be 'true' or 'false'")

        if extras['ln']:
            assignment.long_name = extras['ln'][0]

        if extras['first_deadline']:
            days = int(extras['first_deadline'][0])
            assignment.first_deadline = assignment.publishing_time
            if days == 0:
                assignment.first_deadline += timedelta(seconds=1)
            else:
                assignment.first_deadline += timedelta(days=days)

        assignment.full_clean()
        assignment.save()

        vars(self)[parentnode.parentnode.short_name + '_' +  # subject
                   parentnode.short_name + '_' +  # period
                   assignment.short_name] = assignment
        return assignment