def _create_copydata(self): self.add(nodes="uni", subjects=["sub"], periods=["p1"], assignments=['a1']) self.add_to_path('uni;sub.p1.a1.g1:candidate(student1):examiner(examiner1).d1') # Create delivery for alias_delivery self.add_to_path('uni;sub.p_old.a1.g1:candidate(student1):examiner(examiner1).d1') old_delivery = self.add_delivery("sub.p_old.a1.g1", {"secondtry.py": "print second"}) # Make a delivery without any of the default/generated values, so when # we check that they are copied, we get no generate stuff g1 = self.sub_p1_a1_g1 d1 = self.sub_p1_a1_g1_d1 time_of_delivery = datetime(2005, 1, 1, 0, 0, 0) delivery = Delivery(deadline=d1, number=10, successful=False, delivery_type=1, delivered_by=g1.candidates.all()[0], alias_delivery=old_delivery, time_of_delivery=time_of_delivery) delivery.full_clean() delivery.save() delivery.add_file('test.txt', ['Hello', ' world']) return delivery, old_delivery
def mark_as_delivered_in_previous(self, group, oldgroup=None, feedback=None): if oldgroup: oldfeedback = oldgroup.feedback alias_delivery = oldfeedback.delivery if not feedback: feedback = {'grade': oldfeedback.grade, 'is_passing_grade': oldfeedback.is_passing_grade, 'points': oldfeedback.points, 'rendered_view': oldfeedback.rendered_view, 'saved_by': oldfeedback.saved_by} elif feedback: alias_delivery = None else: raise ValueError('oldgroup or feedback is required arguments.') latest_deadline = group.deadlines.order_by('-deadline')[0] latest_deadline.deadline = datetime.now() + timedelta(seconds=60) delivery = Delivery( deadline=latest_deadline, delivery_type=deliverytypes.ALIAS, alias_delivery=alias_delivery) delivery.set_number() delivery.save() if isinstance(feedback, dict): feedback = delivery.feedbacks.create(**feedback) else: delivery.feedbacks.add(feedback) delivery.full_clean() # NOTE: We have to validate after adding feedback, or the delivery will fail to validate feedback.full_clean() return feedback
def __create_delivery(self): delivery = Delivery( deadline_id=self.group.last_deadline_id, successful=True, delivered_by=self.__get_canidate(), time_of_delivery=datetime.now()) delivery.set_number() delivery.full_clean() delivery.save() return delivery
def add_nonelectronic_delivery(self): from devilry.apps.core.models import Delivery for group in self.all(): deadline = group.last_deadline delivery = Delivery( deadline=deadline, delivery_type=deliverytypes.NON_ELECTRONIC, time_of_delivery=datetime.now()) delivery.set_number() delivery.full_clean() delivery.save()
def test_override_autoset(self): self.add(nodes="uni", subjects=["sub"], periods=["p1"], assignments=['a1']) self.add_to_path('uni;sub.p1.a1.g1:candidate(student1):examiner(examiner1).d1') d1 = self.sub_p1_a1_g1_d1 time_of_delivery = datetime(2005, 1, 1, 0, 0, 0) delivery = Delivery(deadline=d1, number=10, successful=False, time_of_delivery=time_of_delivery) delivery.full_clean() delivery.save() self.assertEquals(delivery.number, 10) self.assertEquals(delivery.successful, False) self.assertEquals(delivery.time_of_delivery, time_of_delivery)