Changeset 9b342a in indico
- Timestamp:
- 06/09/11 11:11:38 (2 years ago)
- Branches:
- master, burotel, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b1, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, d9941f8582b36b24821a11ea5ba16fda6a457fb1
- Children:
- 880a3e, 2810d8
- Parents:
- 699502
- git-author:
- Pedro Ferreira <jose.pedro.ferreira@…> (06/09/11 10:48:56)
- git-committer:
- Pedro Ferreira <jose.pedro.ferreira@…> (06/09/11 11:11:38)
- Location:
- indico
- Files:
-
- 3 edited
-
MaKaC/evaluation.py (modified) (10 diffs)
-
modules/scheduler/module.py (modified) (1 diff)
-
modules/scheduler/tasks.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
indico/MaKaC/evaluation.py
rb7b536 r9b342a 28 28 from MaKaC.common.info import HelperMaKaCInfo 29 29 from MaKaC.common.Counter import Counter 30 from MaKaC.common.timerExec import Alarm31 30 from MaKaC.i18n import _ 32 31 from pytz import timezone 33 32 from MaKaC.common.timezoneUtils import nowutc 33 34 from indico.modules.scheduler import Client 35 from indico.modules.scheduler.tasks import AlarmTask 34 36 35 37 … … 86 88 def removeReferences(self): 87 89 """remove all pointers to other objects.""" 88 self._conf = None89 90 self.removeAllAlarms() 90 91 self.removeAllNotifications() 91 92 self.removeAllQuestions() 92 93 self.removeAllSubmissions() 94 self._conf = None 93 95 94 96 def clone(self, conference): … … 224 226 def setStartDate( self, sd ): 225 227 self.startDate = datetime(sd.year,sd.month,sd.day,0,0,0) 228 for nid, notif in self.getNotifications().iteritems(): 229 if isinstance(notif, EvaluationAlarm): 230 if notif.getStartOn() != sd: 231 notif.move(sd) 232 226 233 def getStartDate( self ): 227 234 if not hasattr(self, "startDate") or self.startDate==datetime(1,1,1,0,0,0): … … 412 419 elif notificationKey == self._EVALUATION_START : 413 420 notification = self.getNotification(notificationKey) 414 if notification != None :421 if notification != None: 415 422 from MaKaC.webinterface import urlHandlers 416 423 alarm = self.getAlarm(notificationKey) … … 419 426 self.getConference().addAlarm(alarm) 420 427 self.getAlarms()[notificationKey] = alarm 428 421 429 self.notifyModification() 422 alarm.initialiseToAddr() 430 else: 431 if self.getStartDate() != alarm.getStartOn(): 432 alarm.move(self.getStartDate()) 433 423 434 alarm.setFromAddr( HelperMaKaCInfo.getMaKaCInfoInstance().getSupportEmail() ) 424 alarm.setStartDate(self.getStartDate())425 435 alarm.setToAddrList(notification.getToList()) 426 436 alarm.setCcAddrList(notification.getCCList()) … … 432 442 """Remove given Alarm.""" 433 443 if alarm != None : 434 if self.getConference().getAlarmById(alarm.get Id())!=None :444 if self.getConference().getAlarmById(alarm.getConfRelativeId()) != None : 435 445 self.getConference().removeAlarm(alarm) 436 446 else : … … 441 451 """remove all alarms.""" 442 452 alarms = self.getAlarms() 453 443 454 for alarm in alarms.values() : 444 455 self.getConference().removeAlarm(alarm) … … 462 473 463 474 464 class EvaluationAlarm(Alarm ):475 class EvaluationAlarm(AlarmTask): 465 476 """Suited alarm for an evaluation.""" 466 477 467 478 def __init__(self, evaluation, notificationKey): 468 479 self._evaluation = evaluation 469 self.notificationKey = notificationKey #cf Evaluation._ALL_NOTIFICATIONS 470 Alarm.__init__(self, evaluation.getConference()) 480 self.notificationKey = notificationKey #cf Evaluation._ALL_NOTIFICATIONS 481 super(EvaluationAlarm, self).__init__(evaluation.getConference(), 482 'Eval_%s' % notificationKey, 483 evaluation.getStartDate()) 471 484 472 485 def setEvaluation(self, evaluation): … … 478 491 return self._evaluation 479 492 480 def setNotificationKey(self, notificationKey): #cf Evaluation._ALL_NOTIFICATIONS493 def setNotificationKey(self, notificationKey): 481 494 self.notificationKey = notificationKey 482 495 483 def getNotificationKey(self): #cf Evaluation._ALL_NOTIFICATIONS496 def getNotificationKey(self): 484 497 if not hasattr(self, "notificationKey"): 485 498 self.notificationKey = None 486 499 return self.notificationKey 487 500 501 def move(self, newDate): 502 c = Client() 503 c.moveTask(self, newDate) 504 488 505 def delete(self): 489 506 evaluation = self.getEvaluation() 490 if evaluation != None :507 if evaluation != None: 491 508 evaluation.removeAlarm(self) 492 509 self.setEvaluation(None) 493 510 Alarm.delete(self) 494 511 495 def prerun(self):496 """returns True if aborted, False otherwise.""" 497 # date checking...512 def _prepare(self, check=True): 513 514 # date checking... 498 515 from MaKaC.conference import ConferenceHolder 499 516 evaluation = self.getEvaluation() … … 502 519 today = nowutc().date() 503 520 if not ConferenceHolder().hasKey(self.conf.getId()) or \ 504 evaluation.getNbOfQuestions() <1 or \521 evaluation.getNbOfQuestions() < 1 or \ 505 522 not evaluation.isVisible() or \ 506 notificationKey==Evaluation._EVALUATION_START and evalEndDate<today : 523 (notificationKey == Evaluation._EVALUATION_START and \ 524 evalEndDate < today and check): 507 525 self.conf.removeAlarm(self) 508 return True #email aborted 509 return False #email ok 526 self.suicide() 527 return False # email aborted 528 return True # email ok 510 529 511 530 -
indico/modules/scheduler/module.py
rd71e61 r9b342a 147 147 self._p_changed = True 148 148 except ValueError: 149 logging.getLogger('scheduler').exception( )149 logging.getLogger('scheduler').exception("Problem removing running task: %s" % self._runningList) 150 150 151 151 def moveTask(self, task, moveFrom, status, occurrence=None, nocheck=False): -
indico/modules/scheduler/tasks.py
r339487 r9b342a 77 77 78 78 def __cmp__(self, obj): 79 if self.id == obj.id and self.id == None: 79 if obj == None: 80 return 1 81 elif (not isinstance(obj, BaseTask) or \ 82 self.id == obj.id and self.id == None): 80 83 return cmp(hash(self), hash(obj)) 81 84 else:
Note: See TracChangeset
for help on using the changeset viewer.
