Changeset d917c5a in indico
- Timestamp:
- 08/30/11 15:17:50 (22 months ago)
- Branches:
- master, hello-world-walkthrough, ipv6, v0.98-series, v0.98.2, v0.98.3, v0.98b2, v0.99, b8c30da8ebdbdcbd675a873997cc3e95f567de49, 4287315ec967a3da168d83963c14001db8487d53
- Children:
- a41c8f
- Parents:
- 633342
- git-author:
- Alberto Resco Perez <alberto.resco.perez@…> (06/21/11 17:34:50)
- git-committer:
- Jose Benito <jose.benito.gonzalez@…> (08/30/11 15:17:50)
- Location:
- indico
- Files:
-
- 11 edited
-
MaKaC/conference.py (modified) (4 diffs)
-
MaKaC/services/implementation/conference.py (modified) (3 diffs)
-
MaKaC/webinterface/meeting.py (modified) (2 diffs)
-
MaKaC/webinterface/pages/conferences.py (modified) (6 diffs)
-
MaKaC/webinterface/rh/conferenceModif.py (modified) (6 diffs)
-
MaKaC/webinterface/simple_event.py (modified) (2 diffs)
-
MaKaC/webinterface/tpls/ConfDisplayAlarm.tpl (modified) (7 diffs)
-
MaKaC/webinterface/tpls/SetAlarm.tpl (modified) (8 diffs)
-
htdocs/confModifTools.py (modified) (2 diffs)
-
modules/scheduler/server.py (modified) (1 diff)
-
modules/scheduler/tasks.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
indico/MaKaC/conference.py
r633342 rd917c5a 2722 2722 2723 2723 for alarm in self.getAlarmList(): 2724 self.removeAlarm(alarm) 2724 if not alarm.getEndedOn(): 2725 self.removeAlarm(alarm) 2725 2726 2726 2727 self.removeAllEvaluations() … … 4312 4313 return conf 4313 4314 4314 def newAlarm(self, when ):4315 def newAlarm(self, when, enqueue=True): 4315 4316 4316 4317 if type(when) == timedelta: … … 4326 4327 relative=relative) 4327 4328 4328 self.addAlarm(al )4329 self.addAlarm(al, enqueue) 4329 4330 return al 4330 4331 … … 4344 4345 return self.__alarmCounter.newCount() 4345 4346 4346 def addAlarm(self, alarm ):4347 tl = Client()4348 4349 tl.enqueue(alarm)4347 def addAlarm(self, alarm, enqueue = True): 4348 if enqueue: 4349 tl = Client() 4350 tl.enqueue(alarm) 4350 4351 4351 4352 self.alarmList[alarm.getConfRelativeId()] = alarm -
indico/MaKaC/services/implementation/conference.py
r633342 rd917c5a 55 55 56 56 from MaKaC.services.interface.rpc.common import ServiceError, Warning, \ 57 ResultWithWarning, TimingNoReportError 57 ResultWithWarning, TimingNoReportError, ServiceAccessError, NoReportError 58 58 from MaKaC.fossils.contribution import IContributionFossil 59 60 59 from indico.modules.scheduler import tasks 60 from indico.util.i18n import i18nformat 61 from MaKaC.common.Configuration import Config 61 62 class ConferenceBase: 62 63 """ … … 766 767 def _handleGet(self): 767 768 return self._target.getAccessController().getContactInfo() 769 770 class ConferenceAlarmSendTestNow(ConferenceModifBase): 771 772 def _checkParams(self): 773 ConferenceModifBase._checkParams(self) 774 pm = ParameterManager(self._params) 775 self._fromAddr = pm.extract("fromAddr", pType=str, allowEmpty=False) 776 self._note = pm.extract("note", pType=str, allowEmpty=True) 777 self._includeConf = pm.extract("includeConf", pType=str, allowEmpty=True, defaultValue="") 778 779 def _getAnswer(self): 780 al = tasks.AlarmTask(self._conf, 0, datetime.timedelta(), relative=datetime.timedelta()) 781 al.setFromAddr(self._fromAddr) 782 al.setNote(self._note) 783 al.setConfSummary(self._includeConf == "1") 784 785 if self._getUser(): 786 fullName = self._getUser().getStraightFullName() 787 al.addToAddr(self._aw.getUser().getEmail()) 788 else: 789 raise NoReportError(_("You must be logged in to use this feature")) 790 791 try: 792 locationText = self._target.getLocation().getName() 793 if self._target.getLocation().getAddress() != "": 794 locationText += ", %s" % self._target.getLocation().getAddress() 795 if self._target.getRoom().getName() != "": 796 locationText += " (%s)" % self._target.getRoom().getName() 797 except: 798 locationText = "" 799 if locationText != "": 800 locationText = i18nformat(""" _("Location"): %s""") % locationText 801 802 if Config.getInstance().getShortEventURL() != "": 803 url = "%s%s" % (Config.getInstance().getShortEventURL(), 804 self._target.getId()) 805 else: 806 url = urlHandlers.UHConferenceDisplay.getURL( self._target ) 807 808 al.setText( _("""Hello, 809 Please note that the event "%s" will begin on %s (%s). 810 %s 811 812 You can access the full event here: 813 %s 814 815 Best Regards, 816 817 %s 818 819 """)%(self._target.getTitle(),\ 820 self._conf.getAdjustedStartDate().strftime("%A %d %b %Y at %H:%M"),\ 821 self._conf.getTimezone(),\ 822 locationText,\ 823 url,\ 824 fullName,\ 825 )) 826 al.run(check = False) 827 return True; 768 828 769 829 methodMap = { … … 794 854 "protection.setAccessKey": ConferenceProtectionSetAccessKey, 795 855 "protection.setModifKey": ConferenceProtectionSetModifKey, 796 "protection.changeContactInfo": ConferenceContactInfoModification 856 "protection.changeContactInfo": ConferenceContactInfoModification, 857 "alarm.sendTestNow": ConferenceAlarmSendTestNow 797 858 } -
indico/MaKaC/webinterface/meeting.py
r581578 rd917c5a 100 100 def getConfModifAC(rh, conf): 101 101 return WPMConfModifAC(rh, conf) 102 103 @staticmethod104 def getConfModifTools(rh, conf):105 return conferences.WPConfDisplayAlarm(rh, conf)106 102 107 103 @staticmethod … … 1757 1753 return evaluations.WPEvaluationInactive._getBody(self, params) 1758 1754 1759 #################### Alarms #####################################1760 1761 class WPMConfAddAlarm(WPMConfModifTools, conferences.WPConfAddAlarm):1762 1763 def __init__(self, rh, conf):1764 WPMConfModifTools.__init__(self, rh, conf)1765 1766 def _setActiveTab( self ):1767 self._tabAlarms.setActive()1768 1769 def _getTabContent(self, params):1770 params["toAllParticipants"] = i18nformat("""1771 <tr>1772 <td> <input type="checkbox" name="toAllParticipants"></td>1773 <td> _("Send alarm to all participants of the event.")</td>1774 </tr>1775 """)1776 return conferences.WPConfAddAlarm._getTabContent(self, params)1777 1778 1755 class WPMTimeTableCustomizePDF(WPMeetingDisplay): 1779 1756 -
indico/MaKaC/webinterface/pages/conferences.py
r633342 rd917c5a 4216 4216 urlHandlers.UHConfDVDCreation.getURL(self._conf) ) 4217 4217 4218 self._tabAlarms.setEnabled(False)4219 4218 self._tabOfflineSite.setHidden(True) 4220 4219 … … 5258 5257 #--------------------------------------------------------------------------------------- 5259 5258 5260 class W SetAlarm(wcomponents.WTemplated):5259 class WConfDisplayAlarm( wcomponents.WTemplated ): 5261 5260 5262 5261 def __init__(self, conference, aw): 5263 self.__conf = conference 5264 self._aw=aw 5265 5266 def _getFromOptionsHTML(self, selected=""): 5267 emails=[] 5268 foundEmail=False 5269 selHTML="" 5270 if selected=="": 5271 foundEmail=True 5272 selHTML="selected=\"selected\"" 5273 html=[ i18nformat("""<option value=\"\" %s>--_("select a from address")--</option>""")%selHTML] 5274 for ch in self.__conf.getChairList(): 5275 if ch.getEmail().strip()!="" and ch.getEmail().strip() not in emails: 5276 selHTML="" 5277 if selected.strip()==ch.getEmail().strip(): 5278 foundEmail=True 5279 selHTML="selected=\"selected\"" 5280 html.append("<option value=%s %s>%s <%s></option>"%(quoteattr(ch.getEmail().strip()),selHTML,ch.getFullName(),ch.getEmail().strip())) 5281 emails.append(ch.getEmail().strip()) 5282 if self.__conf.getSupportEmail().strip()!="" and self.__conf.getSupportEmail().strip() not in emails: 5283 selHTML="" 5284 if selected.strip()==self.__conf.getSupportEmail().strip(): 5285 foundEmail=True 5286 selHTML="selected=\"selected\"" 5287 html.append("<option value=%s %s>%s</option>"%(quoteattr(self.__conf.getSupportEmail().strip()),selHTML,self.__conf.getSupportEmail().strip())) 5288 emails.append(self.__conf.getSupportEmail().strip()) 5289 if self._aw.getUser() is not None and self._aw.getUser().getEmail().strip() not in emails: 5290 selHTML="" 5291 if selected.strip()==self._aw.getUser().getEmail().strip(): 5292 foundEmail=True 5293 selHTML="selected=\"selected\"" 5294 html.append("<option value=%s %s>%s</option>"%(quoteattr(self._aw.getUser().getEmail().strip()),selHTML,self._aw.getUser().getEmail().strip())) 5295 emails.append(self._aw.getUser().getEmail().strip()) 5296 if self.__conf.getCreator() is not None and self.__conf.getCreator().getEmail().strip() not in emails: 5297 selHTML="" 5298 if selected.strip()==self.__conf.getCreator().getEmail().strip(): 5299 foundEmail=True 5300 selHTML="selected=\"selected\"" 5301 html.append("<option value=%s %s>%s <%s></option>"%(quoteattr(self.__conf.getCreator().getEmail().strip()),selHTML,self.__conf.getCreator().getFullName(), self.__conf.getCreator().getEmail().strip())) 5302 #selHTML="" 5303 #if selected.strip()==self.__conf.getTitle().strip(): 5304 # foundEmail=True 5305 # selHTML="selected=\"selected\"" 5306 #html.append("<option value=%s %s>%s</option>"%(quoteattr(self.__conf.getTitle().strip()),selHTML,self.__conf.getTitle().strip())) 5307 if not foundEmail: 5308 selHTML="selected=\"selected\"" 5309 html.append("<option value=%s %s>%s</option>"%(quoteattr(selected.strip()),selHTML,selected.strip())) 5310 return "".join(html) 5311 5312 def getVars(self): 5313 vars = wcomponents.WTemplated.getVars(self) 5314 vars["alarmId"] = vars.get("alarmId","") 5315 vars["confTitle"] = self.__conf.getTitle() 5316 vars["formTitle"] = vars.get("formTitle", _("Create a new alarm email")) 5317 vars["fromOptions"] = self._getFromOptionsHTML(vars.get("fromEmail","")) 5318 vars["toEmails"] = vars.get("toEmails","") 5319 if vars["toEmails"] != "" : 5320 vars["definedRecipients"] = "checked" 5321 vars["recipientsDisabled"] = "" 5322 else : 5323 vars["definedRecipients"] = "" 5324 vars["recipientsDisabled"] = """disabled="disabled" """ 5325 vars["includeConf"] = vars.get("includeConf","") 5326 vars["note"] = vars.get("note","") 5327 vars["timezone"] = self.__conf.getTimezone() 5328 return vars 5329 5330 #--------------------------------------------------------------------------------------- 5331 5332 class WConfDisplayAlarm( wcomponents.WTemplated ): 5333 5334 def __init__(self, conference, aw): 5335 self.__conf = self.__target = conference 5336 self._aw=aw 5262 self.__conf = self.__target = conference 5263 self._aw=aw 5337 5264 5338 5265 def getVars( self ): … … 5343 5270 vars["alarmList"] = self.__target.getAlarmList() 5344 5271 vars["timezone"] = self.__target.getTimezone() 5345 vars["notScheduledMsg"] = _("The alarm is being scheduled, please wait some seconds and refresh the page.") 5346 vars["alarmSentMsg"] = _("The alarm can no longer be edited as it has already been sent.") 5272 vars["addAlarmURL"] = urlHandlers.UHConfAddAlarm.getURL( self.__conf ) 5273 vars["deleteAlarmURL"] = urlHandlers.UHConfDeleteAlarm.getURL() 5274 vars["modifyAlarmURL"] = urlHandlers.UHConfModifyAlarm.getURL() 5347 5275 return vars 5348 5276 … … 5351 5279 def _getTabContent( self, params ): 5352 5280 wc = WConfDisplayAlarm( self._conf, self._rh._getUser() ) 5353 p = { 5354 "addAlarmURL": urlHandlers.UHConfAddAlarm.getURL( self._conf ), \ 5355 "deleteAlarmURL": urlHandlers.UHConfDeleteAlarm.getURL(), \ 5356 "modifyAlarmURL": urlHandlers.UHConfModifyAlarm.getURL(), \ 5357 } 5358 return wc.getHTML( p ) 5281 return wc.getHTML() 5282 5283 #--------------------------------------------------------------------------------------- 5284 5285 class WSetAlarm(wcomponents.WTemplated): 5286 5287 def __init__(self, conference, aw): 5288 self.__conf = conference 5289 self._aw=aw 5290 5291 def _getFromList(self): 5292 fromList = {} 5293 for ch in self.__conf.getChairList(): 5294 if not fromList.has_key(ch.getEmail().strip()): 5295 fromList[ch.getEmail().strip()] = ch.getFullName() 5296 if self.__conf.getSupportEmail().strip()!="" and not fromList.has_key(self.__conf.getSupportEmail().strip()): 5297 fromList[self.__conf.getSupportEmail().strip()] = self.__conf.getSupportEmail().strip() 5298 if self._aw.getUser() is not None and not fromList.has_key(self._aw.getUser().getEmail().strip()): 5299 fromList[self._aw.getUser().getEmail().strip()] = self._aw.getUser().getFullName() 5300 if self.__conf.getCreator() is not None and not fromList.has_key(self.__conf.getCreator().getEmail().strip()): 5301 fromList[self.__conf.getCreator().getEmail().strip()] = self.__conf.getCreator().getFullName() 5302 return fromList 5303 5304 def getVars(self): 5305 vars = wcomponents.WTemplated.getVars(self) 5306 if vars.has_key("alarmId"): 5307 vars["formTitle"] = _("Create a new alarm email") 5308 else: 5309 vars["formTitle"] = _("Modify alarm data") 5310 vars["timezone"] = self.__conf.getTimezone() 5311 vars["conference"] = self.__conf 5312 vars["today"] = datetime.today() 5313 vars["fromList"] = self._getFromList() 5314 return vars 5359 5315 5360 5316 class WPConfAddAlarm( WPConfModifToolsBase ): … … 5363 5319 self._tabAlarms.setActive() 5364 5320 5365 5366 5321 def _getTabContent( self, params ): 5367 p = WSetAlarm( self._conf, self._getAW() ) 5368 testSendAlarm = i18nformat("""<input type="submit" class="btn" value="_("send this alarm email now")" onClick="this.form.action='%s';">""") % urlHandlers.UHSendAlarmNow.getURL( self._conf ) 5369 if self._rh._getUser(): 5370 testSendAlarm += i18nformat(""" <input type="submit" class="btn" value="_("send me this alarm email as a test")" onClick="this.form.action='%s';">""") % urlHandlers.UHTestSendAlarm.getURL( self._conf ) 5371 thisyear=datetime.today().year 5372 thismonth=datetime.today().month 5373 thisday=datetime.today().day 5374 yearoptions="" 5375 for i in range(thisyear,thisyear+10): 5376 yearoptions+="<OPTION VALUE='%s'>%s" % (i,i) 5377 monthoptions="" 5378 for i in range(1,13): 5379 if i==thismonth: 5380 selecttext=" selected" 5381 else: 5382 selecttext="" 5383 monthoptions+="<OPTION VALUE='%02d'%s>%s" % (i,selecttext,datetime(1900,i,1).strftime("%B")) 5384 dayoptions="" 5385 for i in range(1,32): 5386 if i==thisday: 5387 selecttext=" selected" 5388 else: 5389 selecttext="" 5390 dayoptions+="<OPTION VALUE='%02d'%s>%02d" %(i,selecttext,i) 5391 pars = { \ 5392 "cancelURL": urlHandlers.UHConfDisplayAlarm.getURL( self._conf ), \ 5393 "saveAlarm": urlHandlers.UHSaveAlarm.getURL( self._conf ), \ 5394 "confId": self._conf.getId(), \ 5395 "yearOptions": yearoptions, \ 5396 "monthOptions": monthoptions, \ 5397 "dayOptions": dayoptions, \ 5398 "testSendAlarm": testSendAlarm } 5399 pars["toAllParticipants"] = params.get("toAllParticipants","") 5400 pars["selec1"] = " checked" 5401 pars["selec2"] = pars["selec3"] = "" 5402 pars["hour"] = "" 5403 for i in range(0,24): 5404 pars["hour"] += "<OPTION VALUE=\"%s\">%sH\n"%(string.zfill(i,2),string.zfill(i,2)) 5405 pars["hourBefore"] = "" 5406 for i in range(1,24): 5407 pars["hourBefore"] += "<OPTION VALUE=\"%s\">H-%s\n"%(string.zfill(i,2),i) 5408 pars["dayBefore"] = "" 5409 for i in range(1,8): 5410 pars["dayBefore"] += "<OPTION VALUE=\"%s\">D-%s\n"%(string.zfill(i,2),i) 5411 return p.getHTML( pars ) 5322 wc = WSetAlarm( self._conf, self._getAW() ) 5323 pars = {} 5324 pars["alarmId"] = self._rh._reqParams.get("alarmId","") 5325 pars["user"] = self._rh._getUser() 5326 pars["fromAddr"] = self._rh._reqParams.get("fromAddr","") 5327 pars["Emails"] = self._rh._reqParams.get("Emails","") 5328 pars["note"] = self._rh._reqParams.get("note","") 5329 pars["includeConf"] = (self._rh._reqParams.get("includeConf","")=="1") 5330 pars["toAllParticipants"] = (self._rh._reqParams.get("toAllParticipants",False) == "on") 5331 pars["dateType"] = int(self._rh._reqParams.get("dateType",-1)) 5332 tz=self._conf.getTimezone() 5333 now = nowutc().astimezone(timezone(tz)) 5334 pars["year"]=self._rh._reqParams.get("year",now.year) 5335 pars["month"] = self._rh._reqParams.get("month",now.month) 5336 pars["day"] = self._rh._reqParams.get("day",now.day) 5337 pars["hour"] = self._rh._reqParams.get("hour","08") 5338 pars["minute"] = self._rh._reqParams.get("minute","00") 5339 pars["timeBefore"] = int(self._rh._reqParams.get("_timeBefore",0)) 5340 pars["timeTypeBefore"] = self._rh._reqParams.get("dayBefore","") 5341 return wc.getHTML( pars ) 5412 5342 5413 5343 #-------------------------------------------------------------------- … … 5419 5349 self._alarm = alarm 5420 5350 5421 5422 5351 def _getTabContent( self, params ): 5423 5424 confTZ = timezone(self._conf.getTimezone()) 5425 5426 p = WSetAlarm(self._conf, self._getAW()) 5427 5428 vars = { \ 5429 "cancelURL": urlHandlers.UHConfDisplayAlarm.getURL( self._conf ), \ 5430 "saveAlarm": urlHandlers.UHConfSaveAlarm.getURL(), \ 5431 "confId": self._conf.getId(), \ 5432 "alarmId": self._alarm.getConfRelativeId(), \ 5433 "confTitle": self._conf.getTitle() } 5434 vars["selec1"] = vars["selec2"] = vars["selec3"] = "" 5435 year = month = day = hour = dayBefore = hourBefore = -1 5352 wc = WSetAlarm(self._conf, self._getAW()) 5353 pars ={} 5354 pars["alarmId"] = self._alarm.getConfRelativeId() 5355 pars["timeBeforeType"] = "" 5356 timeBefore=0 5357 year = month = day = hour = minute = -1 5436 5358 if self._alarm.getTimeBefore(): 5359 pars["dateType"] = 2 5437 5360 #the date is calculated from the conference startdate 5438 5361 if self._alarm.getTimeBefore() < timedelta(days=1): 5439 vars["selec3"] = "checked"5440 hourBefore = int(self._alarm.getTimeBefore().seconds/3600)5362 pars["timeBeforeType"] = "hours" 5363 timeBefore = int(self._alarm.getTimeBefore().seconds/3600) 5441 5364 else: 5442 5365 #time before upper to 1 day 5443 vars["selec2"] = "checked" 5444 dayBefore = int(self._alarm.getTimeBefore().days) 5445 startyear=datetime.today().year 5366 pars["timeBeforeType"] = "days" 5367 timeBefore = int(self._alarm.getTimeBefore().days) 5446 5368 else: 5447 5369 #the date is global 5448 vars["selec1"] = "checked"5449 startOn = self._alarm.getStartOn().astimezone( confTZ)5370 pars["dateType"] = 1 5371 startOn = self._alarm.getStartOn().astimezone(timezone(self._conf.getTimezone())) 5450 5372 if startOn != None: 5451 startyear = year = int(startOn.year) 5452 month = int(startOn.month) 5453 day = int(startOn.day) 5454 hour = int(startOn.hour) 5455 vars["dayOptions"] = "" 5456 for i in range(1,32): 5457 sel = "" 5458 if i == day: 5459 sel = "selected" 5460 vars["dayOptions"] += "<OPTION VALUE=\"%s\"%s>%s\n"%(string.zfill(i,2),sel,string.zfill(i,2)) 5461 5462 vars["monthOptions"] = "" 5463 for i in range(1,13): 5464 sel = "" 5465 if i == month: 5466 sel = "selected" 5467 vars["monthOptions"] += "<OPTION VALUE=\"%s\"%s>%s\n"%(string.zfill(i,2),sel,datetime(1900,i,1).strftime("%B")) 5468 5469 vars["yearOptions"] = "" 5470 for i in range(startyear,startyear+10): 5471 sel = "" 5472 if i == year: 5473 sel = "selected" 5474 vars["yearOptions"] += "<OPTION VALUE=\"%s\"%s>%s\n"%(string.zfill(i,4),sel,string.zfill(i,4)) 5475 5476 vars["hour"] = "" 5477 for i in range(0,24): 5478 sel = "" 5479 if i == hour: 5480 sel = "selected" 5481 vars["hour"] += "<OPTION VALUE=\"%s\"%s>%sH\n"%(string.zfill(i,2),sel,string.zfill(i,2)) 5482 5483 vars["hourBefore"] = "" 5484 for i in range(1,24): 5485 sel = "" 5486 if i == hourBefore: 5487 sel = "selected" 5488 vars["hourBefore"] += "<OPTION VALUE=\"%s\"%s>H-%s\n"%(string.zfill(i,2),sel,i) 5489 5490 vars["dayBefore"] = "" 5491 for i in range(1,8): 5492 sel = "" 5493 if i == dayBefore: 5494 sel = "selected" 5495 vars["dayBefore"] += "<OPTION VALUE=\"%s\"%s>D-%s\n"%(string.zfill(i,2),sel,i) 5496 5497 vars["subject"] = self._alarm.getSubject() 5498 vars["toEmails"] = ", ".join(self._alarm.getToAddrList()) 5499 vars["fromEmail"] = self._alarm.getFromAddr() 5500 vars["text"] = self._alarm.getText() 5501 vars["note"] = self._alarm.getNote() 5502 vars["formTitle"] = _("Modify alarm data") 5503 5504 if self._alarm.getToAllParticipants() : 5505 vars["toAllParticipants"] = i18nformat(""" 5506 <tr> 5507 <td> <input type="checkbox" name="toAllParticipants" checked="checked"></td> 5508 <td> _("Send alarm to all participants of the event.")</td> 5509 </tr> 5510 """) 5511 else : 5512 vars["toAllParticipants"] = i18nformat(""" 5513 <tr> 5514 <td> <input type="checkbox" name="toAllParticipants" ></td> 5515 <td> _("Send alarm to all participants of the event.")</td> 5516 </tr> 5517 """) 5518 5519 testSendAlarm = i18nformat("""<input type="submit" class="btn" value="_("send this alarm now")" onClick="this.form.action='%s';">""") % urlHandlers.UHSendAlarmNow.getURL( self._conf ) 5520 if self._rh._getUser(): 5521 testSendAlarm += i18nformat(""" <input type="submit" class="btn" value="_("send me this alarm as a test")" onClick="this.form.action='%s';">""") % urlHandlers.UHTestSendAlarm.getURL( self._conf ) 5522 5523 vars["testSendAlarm"] = testSendAlarm 5524 if self._alarm.getConfSummary(): 5525 vars["includeConf"] = "checked" 5526 5527 return p.getHTML( vars ) 5373 month = startOn.month 5374 day = startOn.day 5375 hour = startOn.hour 5376 minute = startOn.minute 5377 year = startOn.year 5378 pars["day"] = day 5379 pars["month"] = month 5380 pars["year"] = year 5381 pars["hour"] = hour 5382 pars["minute"] = minute 5383 pars["timeBefore"] = timeBefore 5384 pars["subject"] = self._alarm.getSubject() 5385 pars["Emails"] = ", ".join(self._alarm.getToAddrList()) 5386 pars["fromAddr"] = self._alarm.getFromAddr() 5387 pars["text"] = self._alarm.getText() 5388 pars["note"] = self._alarm.getNote() 5389 pars["toAllParticipants"] = self._alarm.getToAllParticipants() 5390 pars["includeConf"] = self._alarm.getConfSummary() 5391 return wc.getHTML( pars ) 5528 5392 5529 5393 #---------------------------------------------------------------------------------- -
indico/MaKaC/webinterface/rh/conferenceModif.py
r633342 rd917c5a 1922 1922 1923 1923 def _process( self ): 1924 wf = self.getWebFactory() 1925 if wf is not None and not self._conf.isClosed(): 1926 p = wf.getConfModifTools(self, self._conf) 1927 else: 1928 p = conferences.WPConfClone(self, self._target) 1924 p = conferences.WPConfDisplayAlarm(self, self._target) 1929 1925 return p.display() 1930 1926 … … 3127 3123 3128 3124 def _process( self ): 3129 3130 wf=self.getWebFactory() 3131 if wf is not None: 3132 p = wf.getConfAddAlarm(self, self._conf) 3133 else : 3134 p = conferences.WPConfAddAlarm( self, self._conf ) 3125 p = conferences.WPConfAddAlarm( self, self._conf ) 3135 3126 return p.display() 3136 3127 … … 3146 3137 or (params.has_key("defineRecipients") and params.get("Emails","")=="")): 3147 3138 raise FormValuesError( _("""Please select the checkbox 'Send to all participants' or 'Define recipients' with a list of emails.""")) 3148 3149 params = self._getRequestParams() 3139 self._toAllParticipants = params.get("toAllParticipants", False) 3140 self._defineRecipients = params.get("defineRecipients", False) 3141 self._emails = params.get("Emails","") 3142 3143 if not params.has_key("dateType") or params.get("dateType","")=="": 3144 raise FormValuesError(_("Please choose when to send this alarm")) 3150 3145 3151 3146 self._dateType = params["dateType"] … … 3154 3149 self._day = int(params["day"]) 3155 3150 self._hour = int(params["hour"]) 3156 self._dayBefore = params["dayBefore"] 3157 self._hourBefore = params["hourBefore"] 3158 self._emails = params.get("Emails","") 3151 self._minute = int(params["minute"]) 3152 self._timeBefore = params["timeBefore"] 3153 self._timeTypeBefore = params["timeTypeBefore"] 3154 self._note = params.get("note","") 3155 self._includeConf = params.get("includeConf",None) 3156 self._alarmId = params.get("alarmId",None) 3157 self._testAlarm = False 3159 3158 3160 3159 def _initializeAlarm(self, dryRun = False): 3161 3162 3160 if self._dateType == "1": 3163 3161 dtStart = timezone(self._conf.getTimezone()).localize( … … 3165 3163 self._month, 3166 3164 self._day, 3167 self._hour)).astimezone(timezone('UTC')) 3165 self._hour, 3166 self._minute)).astimezone(timezone('UTC')) 3168 3167 relative = None 3169 3168 else: 3170 if self._ dateType == "2":3171 delta = timedelta(days=int(self._ dayBefore))3172 elif self._ dateType == "3":3173 delta = timedelta(0, int(self._ hourBefore) * 3600)3169 if self._timeTypeBefore=="days": 3170 delta = timedelta(days=int(self._timeBefore)) 3171 elif self._timeTypeBefore=="hours": 3172 delta = timedelta(0, int(self._timeBefore) * 3600) 3174 3173 dtStart = self._target.getStartDate() - delta 3175 3174 relative = delta 3176 3175 3177 3176 if self._alarmId: 3178 # Alarm modification3179 3177 al = self._conf.getAlarmById(self._alarmId) 3180 3178 c = Client() 3181 c.moveTask(al, dtStart) 3179 if dryRun: 3180 al.setStartOn(dtStart) 3181 c.dequeue(al) 3182 else: 3183 c.moveTask(al, dtStart) 3182 3184 al.setRelative(relative) 3183 3185 else: 3184 # Alarm creation 3185 if dryRun: 3186 al = tasks.AlarmTask(self._conf, 0, dtStart, relative=relative) 3187 else: 3188 al = self._conf.newAlarm(relative or dtStart) 3189 3190 for addr in self._emails.split(","): 3191 al.addToAddr(addr.strip()) 3186 al = self._conf.newAlarm(relative or dtStart, enqueue=not dryRun) 3187 3188 al.setToAddrList([]) 3189 if(self._defineRecipients or self._testAlarm): 3190 for addr in self._emails.split(","): 3191 al.addToAddr(addr.strip()) 3192 3192 3193 3193 al.setFromAddr(self._fromAddr) … … 3242 3242 al.setConfSummary(False) 3243 3243 3244 al.setToAllParticipants(self._toAllParticipants) 3244 3245 self._al = al 3245 3246 3246 3247 class RHConfSendAlarm( RHCreateAlarm ): 3247 class RHConfSendAlarmNow( RHCreateAlarm ): 3248 3248 3249 3249 def _checkParams( self, params ): 3250 3250 RHCreateAlarm._checkParams( self, params ) 3251 self._note = params["note"]3252 if "includeConf" in params.keys():3253 self._includeConf = params["includeConf"]3254 else:3255 self._includeConf = None3256 if "alarmId" in params.keys():3257 self._alarmId = params["alarmId"]3258 else:3259 self._alarmId = None3260 if self._aw.getUser():3261 self._emails = self._aw.getUser().getEmail()3262 else:3263 self._emails = None3264 3265 def _process( self ):3266 RHCreateAlarm._process(self)3267 params = self._getRequestParams()3268 3269 if self._al:3270 self._al.run(check = False)3271 # if not self._alarmId:3272 # self._conf.removeAlarm(self._al)3273 3274 if params.get("toAllParticipants", False):3275 self._al.setToAllParticipants(True)3276 else :3277 self._al.setToAllParticipants(False)3278 3279 self._redirect( urlHandlers.UHConfDisplayAlarm.getURL( self._target ) )3280 3281 class RHConfSendAlarmNow( RHConfSendAlarm ):3282 3283 def _checkParams( self, params ):3284 RHCreateAlarm._checkParams( self, params )3285 self._note = params["note"]3286 if "includeConf" in params.keys():3287 self._includeConf = params["includeConf"]3288 else:3289 self._includeConf = None3290 if "alarmId" in params.keys():3291 self._alarmId = params["alarmId"]3292 else:3293 self._alarmId = None3294 3295 self._emails = params.get("Emails","")3296 3297 3251 emails = [] 3298 3252 if self._emails != "" : 3299 3253 emails.append(self._emails) 3300 if params.get("toAllParticipants",None) is not None : 3301 for p in self._conf.getParticipation().getParticipantList() : 3302 emails.append(p.getEmail()) 3254 if self._toAllParticipants: 3255 if self._conf.getType()=="conference": 3256 for r in self._conf.getRegistrantsList(): 3257 emails.append(r.getEmail()) 3258 else: 3259 for p in self._conf.getParticipation().getParticipantList() : 3260 emails.append(p.getEmail()) 3303 3261 self._emails = ", ".join(emails) 3304 3262 3305 3263 self._initializeAlarm(dryRun = True) 3306 3264 3307 3308 class ConfSendTestAlarm(RHConfSendAlarm): 3309 3310 def _checkParams( self, params ): 3311 RHConfSendAlarm._checkParams( self, params ) 3312 if not params.has_key("fromAddr") or params.get("fromAddr","")=="": 3313 raise FormValuesError( _("""Please choose a "FROM" address for this alarm""")) 3314 self._fromAddr=params.get("fromAddr") 3315 3316 self._note = params["note"] 3317 if "includeConf" in params.keys(): 3318 self._includeConf = params["includeConf"] 3319 else: 3320 self._includeConf = None 3321 self._alarmId = None 3322 if self._aw.getUser(): 3323 self._emails = self._aw.getUser().getEmail() 3324 else: 3325 self._emails = None 3326 3327 self._initializeAlarm(dryRun = True) 3328 3265 def _process( self ): 3266 RHCreateAlarm._process(self) 3267 if self._al: 3268 self._al.run(check = False) 3269 self._al.setStartedOn(timezoneUtils.nowutc()) 3270 self._al.setEndedOn(timezoneUtils.nowutc()) 3271 self._redirect( urlHandlers.UHConfDisplayAlarm.getURL( self._target ) ) 3329 3272 3330 3273 class RHConfSaveAlarm( RHCreateAlarm ): 3331 3274 3332 def _createAlarm(self, dtStart):3333 3334 if self._alarmId:3335 al = self._conf.getAlarmById(self._alarmId)3336 else:3337 al = self._conf.newAlarm(dtStart)3338 3339 for addr in self._emails.split(","):3340 al.addToAddr(addr.strip())3341 al.setFromAddr(self._fromAddr)3342 al.setSubject("Event reminder: %s"%self._target.getTitle())3343 try:3344 locationText = self._target.getLocation().getName()3345 if self._target.getLocation().getAddress() != "":3346 locationText += ", %s" % self._target.getLocation().getAddress()3347 if self._target.getRoom().getName() != "":3348 locationText += " (%s)" % self._target.getRoom().getName()3349 except:3350 locationText = ""3351 if locationText != "":3352 locationText = i18nformat(""" _("Location"): %s""") % locationText3353 fullName="%s"%self._conf.getTitle()3354 if self._getUser() is not None:3355 fullName = ",\n%s" % self._getUser().getStraightFullName()3356 else:3357 fullName = ""3358 if Config.getInstance().getShortEventURL() != "":3359 url = "%s%s" % (Config.getInstance().getShortEventURL(),self._target.getId())3360 else:3361 url = urlHandlers.UHConferenceDisplay.getURL( self._target )3362 al.setText( _("""Hello,3363 Please note that the event "%s" will begin on %s (%s).3364 %s3365 3366 You can access the full event here:3367 %s3368 3369 Best Regards%s3370 3371 """)%(self._target.getTitle(),\3372 self._target.getAdjustedStartDate().strftime("%A %d %b %Y at %H:%M"),\3373 self._target.getTimezone(),\3374 locationText,\3375 url,\3376 fullName,\3377 ))3378 al.setNote(self._note)3379 if self._includeConf:3380 if self._includeConf == "1":3381 al.setConfSumary(True)3382 else:3383 al.setConfSumary(False)3384 else:3385 al.setConfSumary(False)3386 self._al = al3387 3388 3275 def _checkParams( self, params ): 3389 3276 RHCreateAlarm._checkParams( self, params ) 3390 3391 emails = []3392 if self._emails != "" :3393 emails.append(self._emails)3394 self._note = params["note"]3395 if "includeConf" in params.keys():3396 self._includeConf = params["includeConf"]3397 else:3398 self._includeConf = None3399 if "alarmId" in params.keys():3400 self._alarmId = params["alarmId"]3401 else:3402 self._alarmId = None3403 3404 3277 self._initializeAlarm() 3405 3278 3406 if params.get("toAllParticipants", False):3407 self._al.setToAllParticipants(True)3408 else :3409 self._al.setToAllParticipants(False)3410 3411 3412 3279 def _process(self): 3413 RHCreateAlarm._process(self)3414 params = self._getRequestParams()3415 3416 3280 self._redirect( urlHandlers.UHConfDisplayAlarm.getURL( self._target ) ) 3417 3281 3418 3419 class RHConfdeleteAlarm( RHAlarmBase ): 3282 class RHConfDeleteAlarm( RHAlarmBase ): 3420 3283 3421 3284 def _process(self): 3285 if self._alarm.getEndedOn(): 3286 raise MaKaCError(_("The alarm can not be deleted")) 3422 3287 self._conf.removeAlarm(self._alarm) 3423 3288 self._redirect( urlHandlers.UHConfDisplayAlarm.getURL( self._conf ) ) -
indico/MaKaC/webinterface/simple_event.py
r34d140 rd917c5a 87 87 return WPSEConfModifAC(rh, conf) 88 88 getConfModifAC = staticmethod(getConfModifAC) 89 90 def getConfModifTools(rh, conf):91 return WPSEConfDisplayAlarm(rh, conf)92 getConfModifTools = staticmethod(getConfModifTools)93 89 94 90 def getConfModifBookings(rh, conf, bs): … … 628 624 return evaluations.WPEvaluationInactive._getBody(self, params) 629 625 630 #################### Alarms #####################################631 632 class WPSEConfDisplayAlarm(WPSEConfModifToolsBase, conferences.WPConfDisplayAlarm):633 634 def _getTabContent(self, params):635 return conferences.WPConfDisplayAlarm._getTabContent(self, params)636 637 def _setActiveTab( self ):638 self._tabAlarms.setActive()639 640 641 class WPSEConfAddAlarm(WPSEConfModifToolsBase, conferences.WPConfAddAlarm ):642 643 def __init__(self, rh, conf):644 WPSEConfModifToolsBase.__init__(self, rh, conf)645 646 def _getTabContent(self, params):647 params["toAllParticipants"] = """648 <tr>649 <td> <input type="checkbox" name="toAllParticipants"></td>650 <td>Send alarm to all participants of the event.</td>651 </tr>652 """653 return conferences.WPConfAddAlarm._getTabContent(self, params)654 626 655 627 ################# Minutes ######################################### -
indico/MaKaC/webinterface/tpls/ConfDisplayAlarm.tpl
r93bde9 rd917c5a 1 <%from indico.util.date_time import format_datetime, format_date, format_time%> 2 1 3 <%def name="printRecipientList(alarm)"> 2 4 <% addr = "" %> … … 14 16 15 17 <%def name="printStartDate(alarm)"> 16 <% dateStart = alarm.getStartOn().astimezone(confTZ) %>18 ${format_datetime(alarm.getStartOn(),format='d MMM yyyy HH:mm', timezone=confTZ)} 17 19 % if alarm.getTimeBefore() is not None: 18 20 <% … … 20 22 d = tb.days 21 23 %> 22 % if d < 0: 23 ${dateStart.strftime(dtFormat)} 24 % elif d != 0: 25 ${"D-%s (%s)" % (d,dateStart.strftime(dtFormat))} 24 % if d != 0: 25 ${"(Day -%s)" %d} 26 26 % else: 27 ${" H-%s (%s)" % (tb.seconds/3600,dateStart.strftime(dtFormat))}27 ${"(Hour -%s )" % (tb.seconds/3600)} 28 28 % endif 29 % elif dateStart is not None:30 ${dateStart.strftime(dtFormat)}31 % else:32 ${_("not set")}33 29 % endif 34 30 </%def> 35 31 36 <table align="center" width="90%"> 37 <form action="${ addAlarmURL }" method="POST"> 38 <tr> 39 <td> 40 <input type="submit" class="btn" value="${ _("add new alarm")}"> 41 </td> 42 </tr> 43 </form> 44 </table> 45 46 <table width="90%" align="center" border="0" style="border-left: 1px solid #777777"> 32 <table width="100%" border="0"> 47 33 <tr> 48 34 <td colspan="4" nowrap class="groupTitle"> … … 52 38 <tr> 53 39 <td bgcolor="white" width="90%"> 54 <table width=" 100%">40 <table width="80%"> 55 41 <tr> 56 42 <td nowrap class="titleCellFormat">${ _("Date")} (${ timezone }):</td> … … 68 54 </td> 69 55 <td width="60%"> 70 % if al.getId(): 71 % if al.getEndedOn(): 72 <span class="alarmSent"> 73 ${al.getSubject()} 74 ${ ("(" +_("Sent the ") + al.getStartedOn().astimezone(confTZ).strftime(dtFormat) +")")} 75 </span> 76 % else: 77 <a href="${modifyAlarmURL}?${al.getLocator().getURLForm()}" >${al.getSubject()}</a> 78 % endif 56 % if al.getEndedOn(): 57 <span class="alarmSent"> 58 ${al.getSubject()} 59 ${ ("(" +_("Sent the ") + al.getStartedOn().astimezone(confTZ).strftime(dtFormat) +")")} 60 </span> 61 % elif al.getId() : 62 <a href="${modifyAlarmURL}?${al.getLocator().getURLForm()}" >${al.getSubject()}</a> 79 63 % else: 80 64 <span class="notScheduled"> … … 85 69 <td nowrap>${printRecipientList(al)}</td> 86 70 <td align="center"> 87 % if al.getId(): 88 <a href="${deleteAlarmURL}?${al.getLocator().getURLForm()}" onclick="return confirm('${_("Are you sure to delete this alarm?")}');">${_("Delete")}</a> 71 % if al.getEndedOn(): 72 <span class="alarmSent">${_("Delete")}</span> 73 % elif al.getId(): 74 <a href="${deleteAlarmURL}?${al.getLocator().getURLForm()}" onclick="return confirm('${_("Are you sure to delete this alarm?")}');">${_("Delete")}</a> 89 75 % else: 90 <span class="notScheduled"> 91 ${_("Delete")} 92 </span> 76 <span class="notScheduled">${_("Delete")}</span> 93 77 % endif: 94 78 </td> … … 100 84 </tr> 101 85 </table> 86 87 <table width="100%"> 88 <form action="${ addAlarmURL }" method="POST"> 89 <tr> 90 <td> 91 <input type="submit" class="btn" value="${ _("add new alarm")}"> 92 </td> 93 </tr> 94 </form> 95 </table> 96 102 97 <script type="text/javascript"> 103 98 IndicoUI.executeOnLoad(function(){ 104 $('span.alarmSent').qtip({content: '${ alarmSentMsg}', position: {my: 'top middle', at: 'bottom middle'}});105 $('span.notScheduled').qtip({content: '${ notScheduledMsg}', position: {my: 'top middle', at: 'bottom middle'}});99 $('span.alarmSent').qtip({content: '${"The alarm has already been sent."}', position: {my: 'top middle', at: 'bottom middle'}}); 100 $('span.notScheduled').qtip({content: '${_("The alarm is being scheduled, please wait some seconds and refresh the page.")}', position: {my: 'top middle', at: 'bottom middle'}}); 106 101 }); 107 102 </script> -
indico/MaKaC/webinterface/tpls/SetAlarm.tpl
r4bf83c rd917c5a 1 <script type="text/javascript"> 2 <!-- 3 function setEmailsState() 4 { 5 if (document.getElementById("email").disabled){ 6 document.getElementById("email").disabled = false 7 } else { 8 document.getElementById("email").disabled = true 9 } 10 } 11 //--> 12 </script> 13 14 15 <center> 16 <table width="60%" align="center" border="0" style="border-left: 1px solid #777777"> 1 <table width="60%" border="0"> 17 2 <tr> 18 3 <td colspan="5" class="groupTitle">${ formTitle }</td> … … 22 7 <br> 23 8 <TABLE border="0" align="center" width="100%"> 24 <form action="${ saveAlarm }" methode="POST" name="alarmForm"> 25 <input type="hidden" name="confId" value="${ confId }"> 9 <form method="POST" name="alarmForm"> 26 10 <input type="hidden" name="alarmId" value="${ alarmId }"> 27 11 <tr> … … 37 21 <tr> 38 22 <td> 39 <input name="dateType" type="radio" value="1" ${ selec1}> ${ _("At this date")}:23 <input name="dateType" type="radio" value="1" ${ "checked" if dateType == 1 else "" }> ${ _("At this date")}: 40 24 </td> 41 <td nowrap> 42 <SMALL> 43 <SELECT name=day > 44 ${ dayOptions } 45 </SELECT> 46 <SELECT name=month > 47 ${ monthOptions } 48 </SELECT> 49 <SELECT name=year > 50 ${ yearOptions } 51 </SELECT> 52 <SELECT name=hour > 53 ${ hour } 54 </SELECT> 25 <td nowrap class="contentCellTD"> 26 <span id="datePlace"></span> 27 <input type="hidden" id="day" name="day" value="${ day }"> 28 <input type="hidden" id="month" name="month" value="${ month }"> 29 <input type="hidden" id="year" name="year" value="${ year }"> 30 <input type="hidden" id="hour" name="hour" value="${ hour }"> 31 <input type="hidden" id="minute" name="minute" value="${ minute }"> 55 32 (${ timezone }) 56 33 </td> … … 58 35 <tr> 59 36 <td> 60 <input name="dateType" type="radio" value="2" ${ selec2 }> ${ _("Daybefore the beginning of the event")}:37 <input name="dateType" type="radio" value="2" ${ "checked" if dateType == 2 else "" }> ${ _("Time before the beginning of the event")}: 61 38 </td> 62 39 <td> 63 <SELECT name=dayBefore > 64 ${ dayBefore } 65 </SELECT> 66 </td> 67 </tr> 68 <tr> 69 <td> 70 <input name="dateType" type="radio" value="3" ${ selec3 }> ${ _("Hours before the beginning of the event")}: 71 </td> 72 <td> 73 <SELECT name=hourBefore > 74 ${ hourBefore } 75 </SELECT> 40 <input size="3" name="timeBefore" value="${timeBefore}"> 41 42 <select name=timeTypeBefore > 43 <option value="hours" ${"selected" if dateType == 2 else ""}>${_("Hours")} 44 <option value="days" ${"selected" if dateType == 3 else ""}>${_("Days")} 45 </select> 76 46 </td> 77 47 </tr> … … 89 59 <td> </td> 90 60 <td> 91 <select name="fromAddr" style="width:425px"> 92 ${ fromOptions } 61 <select name="fromAddr" id="fromAddr" style="width:425px"> 62 <option value="">--${_("select a from address")}--</option> 63 % for contact in fromList: 64 <option value="${contact}" ${"selected" if fromAddr.strip() == contact else ""}> 65 % if contact == fromList[contact]: 66 ${contact} 67 % else: 68 ${fromList[contact]} <${contact}> 69 % endif 70 </option> 71 % endfor 93 72 </select> 94 73 </td> … … 98 77 <td colspan="2"><b> ${ _("Send alarm to")}:</b></td> 99 78 </tr> 100 ${ toAllParticipants }101 79 <tr> 102 <td> <input type="checkbox" name="defineRecipients" onClick="setEmailsState()" ${ definedRecipients }></td> 80 <td> <input type="checkbox" name="toAllParticipants" ${"checked" if toAllParticipants else ""}></td> 81 <td> ${_("Send alarm to all participants of the event.")}</td> 82 </tr> 83 <tr> 84 <td> <input type="checkbox" name="defineRecipients" onClick="setEmailsState()" ${ "checked" if Emails!="" else "" }></td> 103 85 <td> ${ _("Define recipients (comma-separated list of email addresses)")} :</td> 104 86 </tr> 105 87 <tr> 106 88 <td> </td> 107 <td><input type="text" name="Emails" id="email" size="90%" ${ recipientsDisabled } value="${ toEmails }"></td>89 <td><input type="text" name="Emails" id="email" size="90%" ${ "disabled='disabled'" if Emails=="" else "" }value="${ Emails }"></td> 108 90 </tr> 109 91 <tr><td> </td></tr> … … 113 95 </tr> 114 96 <td> </td> 115 <td align="right"><textarea name="note" rows="5" style="width:100%;" >${ note }</textarea></td>97 <td align="right"><textarea id="note" name="note" rows="5" style="width:100%;" >${ note }</textarea></td> 116 98 </tr> 117 99 <tr> 118 100 <td colspan="2" align="left"> 119 101 <br> 120 <input name="includeConf" type="checkbox" value="1" ${ includeConf}> ${ _("Include a text version of the agenda in the email")}102 <input name="includeConf" id="includeConf" type="checkbox" value="1" ${ "checked" if includeConf else ""}> ${ _("Include a text version of the agenda in the email")} 121 103 </td> 122 104 </tr> 123 </SMALL>124 105 </table> 125 106 </TD></tr> 126 <tr><td align="center" colspan="2"> 127 <br> 128 <input type="submit" class="btn" value="${ _("save the alarm")}"> ${ testSendAlarm } 129 </td> 107 <tr> 108 <td align="center" colspan="2"> 109 <br> 110 <input type="submit" class="btn" value="${ _("Save")}" onClick="this.form.action='${ urlHandlers.UHSaveAlarm.getURL( conference ) }'"> 111 <input type="submit" class="btn" value="${_("Send now")}" onClick="this.form.action='${urlHandlers.UHSendAlarmNow.getURL(conference)}';"> 112 <input type="submit" class="btn" value="${_("Send me as a test")}" onClick="return sendTestAlarm(this.form); return false;"> 113 <input type="submit" class="btn" value="${ _("Cancel")}" onClick="this.form.action='${urlHandlers.UHConfDisplayAlarm.getURL( conference )}';"> 114 </td> 130 115 </tr> 131 116 </form> … … 135 120 136 121 </table> 137 <form action="${ cancelURL }" method="POST"> 138 <input type="submit" class="btn" value="${ _("cancel")}"> 139 </form> 140 </center> 122 123 <script type="text/javascript"> 124 var setEmailsState = function () 125 { 126 if ($("#email").is(":disabled")){ 127 $("#email").removeAttr("disabled"); 128 } else { 129 $("#email").attr("disabled",true); 130 } 131 }; 132 133 var sendTestAlarm = function (form) 134 { 135 var killProgress = IndicoUI.Dialogs.Util.progress($T("Sending the test alarm...")); 136 indicoRequest('event.alarm.sendTestNow', { 137 confId: ${conference.getId()}, 138 fromAddr: $("#fromAddr").val(), 139 note: $("#note").val(), 140 includeConf: $("#includeConf").val(), 141 }, 142 function(result, error) { 143 if(error) { 144 IndicoUtil.errorReport(error); 145 killProgress(); 146 } else{ 147 killProgress(); 148 (new AlertPopup($T('Success'),$T("The test alarm has been succesfully sent."))).open(); 149 } 150 }); 151 return false; 152 }; 153 154 IndicoUI.executeOnLoad(function() 155 { 156 var dateAlarm = IndicoUI.Widgets.Generic.dateField(true,null,['day', 'month', 'year','hour', 'minute']); 157 $('#datePlace').append($(dateAlarm.dom)); 158 % if day != '': 159 dateAlarm.set('${ day }/${ month }/${ year } ${ hour }:${ minute }'); 160 % endif 161 }); 162 </script> -
indico/htdocs/confModifTools.py
rbdd862 rd917c5a 50 50 51 51 def testSendAlarm( req, **params ): 52 return conferenceModif. ConfSendTestAlarm( req ).process( params )52 return conferenceModif.RHConfSendTestAlarm( req ).process( params ) 53 53 54 54 def sendAlarmNow( req, **params ): … … 56 56 57 57 def deleteAlarm( req, **params ): 58 return conferenceModif.RHConf deleteAlarm( req ).process( params )58 return conferenceModif.RHConfDeleteAlarm( req ).process( params ) 59 59 60 60 def modifyAlarm( req, **params ): -
indico/modules/scheduler/server.py
r11d8b5 rd917c5a 454 454 self._db_moveTask(task, 455 455 oldStatus, 456 base.TASK_STATUS_ FAILED)456 base.TASK_STATUS_NONE) 457 457 458 458 self._logger.info("%s dequeued from status %s" % \ -
indico/modules/scheduler/tasks.py
red28e7 rd917c5a 120 120 def getStartedOn(self): 121 121 return self.startedOn 122 123 def setStartedOn(self, dateTime): 124 self.startedOn = dateTime 122 125 123 126 def setOnRunningListSince(self, sometime): … … 650 653 651 654 if self.getToAllParticipants() : 652 for p in self.conf.getParticipation().getParticipantList(): 653 self.addToUser(p) 654 655 if self.conf.getType()=="conference": 656 for r in self.conf.getRegistrantsList(): 657 self.addToUser(r) 658 else: 659 for p in self.conf.getParticipation().getParticipantList() : 660 self.addToUser(p) 655 661 from MaKaC.webinterface import urlHandlers 656 662 if Config.getInstance().getShortEventURL() != "":
Note: See TracChangeset
for help on using the changeset viewer.
