From 4d6c0ce3ffa86bfc8b778809f8fd944c277fab64 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Sun, 20 Jul 2014 15:59:24 +0200 Subject: [PATCH] fix no corrector with uuid --- teleforma/exam/models.py | 108 +++++++++++++++++++-------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/teleforma/exam/models.py b/teleforma/exam/models.py index cc8cfa13..bffe4e40 100644 --- a/teleforma/exam/models.py +++ b/teleforma/exam/models.py @@ -246,6 +246,8 @@ class Script(BaseResource): self.corrector = lower_quota['obj'].corrector else: self.corrector = User.objects.filter(is_superuser=True)[0] + + self.status = 3 self.save() def make_from_pages(self): @@ -302,69 +304,67 @@ class Script(BaseResource): self.file = new_rel self.save() + def box_upload(self): + i = 0 + n = 30 + s = 6 + + while True: + statuses = crocodoc.document.status([self.box_uuid,]) + if (len(statuses) != 0): + if (statuses[0].get('error') == None): + if statuses[0]['status'] == 'DONE': + self.t = 1 + break + else: + time.sleep(s) + else: + print 'File upload failed :(' + print ' Error Message: ' + statuses[0]['error'] + time.sleep(s) + i += 1 + if i == n: + break + else: + print 'failed :(' + print ' Statuses were not returned.' + time.sleep(s) + i += 1 + if i == n: + break + + def auto_reject(self, mess): + self.reject_reason = mess + self.status = 0 + self.corrector = User.objects.filter(is_superuser=True)[0] + self.save() + def submit(self): - self.date_submitted = datetime.datetime.now() + self.t = 0 if not self.file: - self.reject_reason = 'no file' - self.status = 0 - self.corrector = User.objects.filter(is_superuser=True)[0] - self.save() + self.auto_reject('no file') return - if not os.path.exists(self.file.path): - self.reject_reason = 'file not found' - self.status = 0 - self.corrector = User.objects.filter(is_superuser=True)[0] - self.save() + self.auto_reject('file not found') return - if not ('.pdf' in self.file.path or '.PDF' in self.file.path): - self.reject_reason = 'wrong format' - self.status = 0 - self.corrector = User.objects.filter(is_superuser=True)[0] - self.save() + self.auto_reject('wrong format') return - if not self.box_uuid and not self.status == 0 and self.file: - self.fix_filename() - # self.url = 'http://teleforma.parisson.com/media/scripts/2014/06/24/Gstreamer_monitoring_Pipleline.pdf' - self.url = settings.MEDIA_URL + unicode(self.file) - self.box_uuid = crocodoc.document.upload(url=self.url) - - i = 0 - n = 30 - s = 6 - t = 0 - - while True: - statuses = crocodoc.document.status([self.box_uuid,]) - if (len(statuses) != 0): - if (statuses[0].get('error') == None): - if statuses[0]['status'] == 'DONE': - t = 1 - break - else: - time.sleep(s) - else: - print 'File upload failed :(' - print ' Error Message: ' + statuses[0]['error'] - time.sleep(s) - i += 1 - if i == n: - break - else: - print 'failed :(' - print ' Statuses were not returned.' - time.sleep(s) - i += 1 - if i == n: - break - - if not self.corrector and t == 1: - self.auto_set_corrector() - self.status = 3 - self.save() + if not self.status == 0 and self.file: + if not self.box_uuid: + self.fix_filename() + # self.url = 'http://teleforma.parisson.com/media/scripts/2014/06/24/Gstreamer_monitoring_Pipleline.pdf' + self.url = settings.MEDIA_URL + unicode(self.file) + self.box_uuid = crocodoc.document.upload(url=self.url) + self.date_submitted = datetime.datetime.now() + self.box_upload() + if not self.corrector and self.t == 1: + self.auto_set_corrector() + else: + if not self.corrector: + self.auto_set_corrector() def mark(self): self.date_marked = datetime.datetime.now() -- 2.39.5