Changeset 3908a4 in indico
- Timestamp:
- 06/17/10 16:21:52 (3 years ago)
- Branches:
- master, burotel, hello-world-walkthrough, ipv6, new-webex, v0.97-series, v0.98-series, v0.98.2, v0.98.3, v0.98b1, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, 4c7d4152dff271ba5df5a8606605969cab454080
- Children:
- 336d4e
- Parents:
- cd05ca
- git-author:
- Ian Rolewicz <ian.rolewicz@…> (04/29/10 14:15:07)
- git-committer:
- Jose Benito <jose.benito.gonzalez@…> (06/17/10 16:21:52)
- Location:
- indico/MaKaC
- Files:
-
- 2 added
- 12 edited
-
rb_reservation.py (modified) (23 diffs)
-
webinterface/rh/roomBooking.py (modified) (6 diffs)
-
webinterface/tpls/RoomBookingBookingForm.tpl (modified) (2 diffs)
-
webinterface/tpls/RoomBookingDetails.tpl (modified) (1 diff)
-
webinterface/tpls/RoomBookingEmail_2ResponsibleAfterBookingConfirmation.tpl (added)
-
webinterface/tpls/RoomBookingEmail_2ResponsibleAfterBookingRejection.tpl (added)
-
webinterface/tpls/RoomBookingEmail_2UserAfterBookingCancellation.tpl (modified) (2 diffs)
-
webinterface/tpls/RoomBookingEmail_2UserAfterBookingInsertion.tpl (modified) (2 diffs)
-
webinterface/tpls/RoomBookingEmail_2UserAfterBookingModification.tpl (modified) (1 diff)
-
webinterface/tpls/RoomBookingEmail_2UserAfterBookingRejection.tpl (modified) (1 diff)
-
webinterface/tpls/RoomBookingEmail_2UserAfterPreBookingInsertion.tpl (modified) (1 diff)
-
webinterface/tpls/RoomBookingEmail_2UserRequestProlongation.tpl (modified) (2 diffs)
-
webinterface/tpls/RoomBookingRoomForm.tpl (modified) (1 diff)
-
webinterface/wcomponents.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
indico/MaKaC/rb_reservation.py
rcd05ca r3908a4 67 67 68 68 # Room booking module notifications will be send to this e-mail when debug is on 69 EMAIL_FOR_DEBUG_NOTIFICATIONS = " jose.benito.gonzalez@cern.ch"69 EMAIL_FOR_DEBUG_NOTIFICATIONS = "" 70 70 EMAIL_FROM_PREFIX = "noreply-" 71 71 … … 142 142 emails = [] 143 143 # ---- Email creator and contact ---- 144 144 145 if self.createdByUser(): # Imported bookings does not have creator 145 146 to = self.createdByUser().getEmail() 146 to2 = "" 147 if self.contactEmail != None and self.contactEmail != "": 148 to2 = self.contactEmail 147 firstName = self.createdByUser().getFirstName() 148 149 to2 = self._getContactEmailList() 150 149 151 if self.isConfirmed: 150 152 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] You have made a New Booking on " + formatDateTime(self.startDT) … … 153 155 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Your PRE-Booking waits for Acceptance" 154 156 wc = WTemplated( 'RoomBookingEmail_2UserAfterPreBookingInsertion' ) 155 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self } )157 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self, 'firstName':firstName } ) 156 158 fromAddr = EMAIL_FROM_PREFIX+HelperMaKaCInfo.getMaKaCInfoInstance().getSupportEmail() 157 159 addrs = [] … … 159 161 addrs.append( EMAIL_FOR_DEBUG_NOTIFICATIONS ) 160 162 else: 161 addrs.append( to ) 162 if to2 != "" and to != to2: 163 addrs.append( to2 ) 163 if to : 164 addrs.append( to ) 165 if to in to2: 166 to2.remove(to) 167 addrs.extend(to2) 164 168 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 165 169 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) … … 170 174 171 175 toMain = self.room.getResponsible().getEmail() 176 toCustom = self._getNotificationEmailList() 172 177 173 178 if self.isConfirmed: … … 188 193 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 189 194 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) 190 if self.room.customAtts.get( 'notification email', None ): 191 addrs.append(self.room.customAtts.get( 'notification email' ).strip()) 195 if toMain in toCustom : 196 toCustom.remove( toMain ) 197 addrs.extend( toCustom ) 192 198 maildata = { "fromAddr": fromAddr, "toList": addrs, "subject": subject, "body": text } 193 199 emails.append(maildata) … … 238 244 if self.createdByUser(): # Imported bookings does not have creator 239 245 to = self.createdByUser().getEmail() 246 firstName = self.createdByUser().getFirstName() 247 248 to2 = self._getContactEmailList() 249 240 250 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Cancellation Confirmation on " + startDate + " %s" % occurrenceText 241 251 wc = WTemplated( 'RoomBookingEmail_2UserAfterBookingCancellation' ) 242 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self, 'date':date } )252 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self, 'date':date, 'firstName':firstName } ) 243 253 fromAddr = EMAIL_FROM_PREFIX+HelperMaKaCInfo.getMaKaCInfoInstance().getSupportEmail() 244 254 addrs = [] … … 246 256 addrs.append( EMAIL_FOR_DEBUG_NOTIFICATIONS ) 247 257 else: 248 addrs.append( to ) 258 if to : 259 addrs.append( to ) 260 if to in to2: 261 to2.remove(to) 262 addrs.extend(to2) 249 263 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 250 264 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) … … 255 269 256 270 toMain = self.room.getResponsible().getEmail() 271 toCustom = self._getNotificationEmailList() 257 272 258 273 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Cancelled Booking on " + startDate + " %s" % occurrenceText … … 267 282 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 268 283 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) 269 if self.room.customAtts.get( 'notification email', None ): 270 addrs.append(self.room.customAtts.get( 'notification email' ).strip()) 284 if toMain in toCustom : 285 toCustom.remove( toMain ) 286 addrs.extend( toCustom ) 271 287 maildata = { "fromAddr": fromAddr, "toList": addrs, "subject": subject, "body": text } 272 288 emails.append(maildata) … … 303 319 reason = self.rejectionReason or reason 304 320 305 # Fix by David: include date in this mails too. I have put a try...except in case the date is not accessible in this method 306 try: 307 startDate = formatDateTime(self.startDT) 308 except: 309 startDate = "" 321 if date: 322 occurrenceText = " (SINGLE OCCURRENCE)" 323 startDate = formatDate(date) 324 else: 325 occurrenceText = "" 326 # Fix by David: include date in this mails too. I have put a try...except in case the date is not accessible in this method 327 try: 328 startDate = formatDateTime(self.startDT) 329 except: 330 startDate = "" 310 331 311 332 # ---- Email user ---- 312 333 313 to = firstName = None314 334 if self.createdByUser(): # Imported bookings does not have creator 315 335 to = self.createdByUser().getEmail() 316 336 firstName = self.createdByUser().getFirstName() 317 else: 318 to = self.contactEmail 319 firstName = "User" 320 321 if to: 322 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] REJECTED Booking on " + startDate 337 338 to2 = self._getContactEmailList() 339 340 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] REJECTED Booking on " + startDate + " %s" % occurrenceText 323 341 wc = WTemplated( 'RoomBookingEmail_2UserAfterBookingRejection' ) 324 342 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self, 'firstName':firstName, 'reason':reason, 'date':date } ) … … 328 346 addrs.append( EMAIL_FOR_DEBUG_NOTIFICATIONS ) 329 347 else: 330 addrs.append( to ) 348 if to : 349 addrs.append(to) 350 if to in to2: 351 to2.remove(to) 352 addrs.extend(to2) 331 353 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 332 354 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) 333 355 maildata = { "fromAddr": fromAddr, "toList": addrs, "subject": subject, "body": text } 334 356 emails.append(maildata) 357 358 # ---- Email responsible ---- 359 360 toCustom = self._getNotificationEmailList() 361 362 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Rejected Booking on " + startDate + " %s" % occurrenceText 363 wc = WTemplated( 'RoomBookingEmail_2ResponsibleAfterBookingRejection' ) 364 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self, 'date':date, 'reason':reason } ) 365 fromAddr = EMAIL_FROM_PREFIX+HelperMaKaCInfo.getMaKaCInfoInstance().getSupportEmail() 366 addrs = [] 367 if debug: 368 addrs.append( EMAIL_FOR_DEBUG_NOTIFICATIONS ) 369 else: 370 addrs.extend( toCustom ) 371 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 372 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) 373 maildata = { "fromAddr": fromAddr, "toList": addrs, "subject": subject, "body": text } 374 emails.append(maildata) 375 335 376 return emails 336 377 … … 353 394 # ---- Email user ---- 354 395 355 to = firstName = None356 396 if self.createdByUser(): # Imported bookings does not have creator 357 397 to = self.createdByUser().getEmail() 358 398 firstName = self.createdByUser().getFirstName() 359 else: 360 to = self.contactEmail 361 firstName = "User" 362 363 if to: 399 400 to2 = self._getContactEmailList() 401 364 402 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Confirmed Booking on " + startDate 365 403 wc = WTemplated( 'RoomBookingEmail_2UserAfterBookingConfirmation' ) … … 370 408 addrs.append( EMAIL_FOR_DEBUG_NOTIFICATIONS ) 371 409 else: 372 addrs.append( to ) 410 if to : 411 addrs.append(to) 412 if to in to2: 413 to2.remove(to) 414 addrs.extend(to2) 373 415 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 374 416 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) 375 417 maildata = { "fromAddr": fromAddr, "toList": addrs, "subject": subject, "body": text } 376 418 emails.append(maildata) 419 420 # ---- Email responsible ---- 421 422 toCustom = self._getNotificationEmailList() 423 424 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Confirmed Booking on " + startDate 425 wc = WTemplated( 'RoomBookingEmail_2ResponsibleAfterBookingConfirmation' ) 426 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self } ) 427 fromAddr = EMAIL_FROM_PREFIX+HelperMaKaCInfo.getMaKaCInfoInstance().getSupportEmail() 428 addrs = [] 429 if debug: 430 addrs.append( EMAIL_FOR_DEBUG_NOTIFICATIONS ) 431 else: 432 addrs.extend( toCustom ) 433 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 434 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) 435 maildata = { "fromAddr": fromAddr, "toList": addrs, "subject": subject, "body": text } 436 emails.append(maildata) 377 437 378 438 # ---- Email AVC Support ---- … … 416 476 if self.createdByUser(): # Imported bookings does not have creator 417 477 to = self.createdByUser().getEmail() 478 firstName = self.createdByUser().getFirstName() 479 480 to2 = self._getContactEmailList() 481 418 482 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Booking Modified on " + startDate 419 483 wc = WTemplated( 'RoomBookingEmail_2UserAfterBookingModification' ) 420 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self } )484 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self, 'firstName':firstName } ) 421 485 fromAddr = EMAIL_FROM_PREFIX+HelperMaKaCInfo.getMaKaCInfoInstance().getSupportEmail() 422 486 addrs = [] … … 424 488 addrs.append( EMAIL_FOR_DEBUG_NOTIFICATIONS ) 425 489 else: 426 addrs.append( to ) 490 if to : 491 addrs.append(to) 492 if to in to2: 493 to2.remove(to) 494 addrs.extend(to2) 427 495 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 428 496 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) … … 433 501 434 502 toMain = self.room.getResponsible().getEmail() 503 toCustom = self._getNotificationEmailList() 435 504 436 505 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Booking Modified on " + startDate … … 445 514 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 446 515 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) 447 if self.room.customAtts.get( 'notification email', None ): 448 addrs.append(self.room.customAtts.get( 'notification email' ).strip()) 516 if toMain in toCustom : 517 toCustom.remove( toMain ) 518 addrs.extend( toCustom ) 449 519 maildata = { "fromAddr": fromAddr, "toList": addrs, "subject": subject, "body": text } 450 520 emails.append(maildata) … … 489 559 490 560 # ---- Email user ---- 561 491 562 if self.createdByUser(): # Imported bookings does not have creator 492 563 to = self.createdByUser().getEmail() 564 firstName = self.createdByUser().getFirstName() 565 566 to2 = self._getContactEmailList() 567 493 568 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Request for Booking Prolongation on " + startDate 494 569 wc = WTemplated( 'RoomBookingEmail_2UserRequestProlongation' ) 495 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self } )570 text = TEST_VERSION_WARNING + wc.getHTML( { 'reservation':self, 'firstName':firstName } ) 496 571 fromAddr = EMAIL_FROM_PREFIX+HelperMaKaCInfo.getMaKaCInfoInstance().getSupportEmail() 497 572 addrs = [] … … 499 574 addrs.append( EMAIL_FOR_DEBUG_NOTIFICATIONS ) 500 575 else: 501 addrs.append( to ) 576 if to : 577 addrs.append(to) 578 if to in to2: 579 to2.remove(to) 580 addrs.extend(to2) 502 581 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 503 582 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) … … 519 598 520 599 toMain = self.room.getResponsible().getEmail() 600 toCustom = self._getNotificationEmailList() 521 601 522 602 subject = NOTIFICATION_SUBJECT_PREFIX + " [" + self.room.getFullName() + "] Consider Rejecting This Booking" … … 531 611 if EMAIL_FOR_CATCH_ALL_NOTIFICATIONS: 532 612 addrs.append( EMAIL_FOR_CATCH_ALL_NOTIFICATIONS ) 533 if self.room.customAtts.get( 'notification email', None ): 534 addrs.append(self.room.customAtts.get( 'notification email' ).strip()) 613 if toMain in toCustom : 614 toCustom.remove( toMain ) 615 addrs.extend( toCustom ) 535 616 maildata = { "fromAddr": fromAddr, "toList": addrs, "subject": subject, "body": text } 536 617 emails.append(maildata) … … 1333 1414 return ReservationGUID( Location.parse( self.locationName ), self.id ) 1334 1415 1416 def _getContactEmailList( self ): 1417 """ 1418 Util method used for returning the contact emails in a list in case 1419 the contact email string contains more than one address 1420 """ 1421 if self.contactEmail != None and self.contactEmail != "": 1422 return self.contactEmail.split(",") 1423 else : 1424 return [] 1425 1426 def _getNotificationEmailList( self ): 1427 """ 1428 Util method used for returning the notification emails in a list in case 1429 the notification email custom attribute string contains more than one address 1430 """ 1431 addrs = [] 1432 addr = self.room.customAtts.get( 'notification email', "" ).strip() 1433 if addr: 1434 addrs = addr.split(',') 1435 1436 return addrs 1437 1335 1438 def _eval_str( self, s ): 1336 1439 ixPrv = 0 -
indico/MaKaC/webinterface/rh/roomBooking.py
rcd05ca r3908a4 29 29 from MaKaC.webinterface.rh.base import RHProtected, RoomBookingDBMixin 30 30 from datetime import datetime, timedelta 31 from MaKaC.common.utils import HolidaysHolder 31 from MaKaC.common.utils import HolidaysHolder, validMail, setValidEmailSeparators 32 32 from MaKaC.common.datetimeParser import parse_date 33 33 … … 240 240 manager = CrossLocationQueries.getCustomAttributesManager( c.locationName ) 241 241 for ca in manager.getAttributes( location = c.locationName ): 242 if ca['name'] == 'notification email' : 243 if c.customAtts[ 'notification email' ] and not validMail(c.customAtts['notification email']) : 244 errors.append( "Invalid format for the notification email" ) 242 245 if ca['required']: 243 246 if not c.customAtts.has_key( ca['name'] ): # not exists … … 297 300 value = session.getVar( "cattr_" + ca['name'] ) 298 301 if value != None: 299 candRoom.customAtts[ ca['name'] ] = value 302 if ca['name'] == 'notification email' : 303 candRoom.customAtts[ 'notification email' ] = setValidEmailSeparators(value) 304 else : 305 candRoom.customAtts[ ca['name'] ] = value 300 306 301 307 … … 340 346 if k.startswith( "cattr_" ): 341 347 attrName = k[6:len(k)] 342 candRoom.customAtts[attrName] = v 348 if attrName == 'notification email' : 349 candRoom.customAtts['notification email'] = setValidEmailSeparators(v) 350 else : 351 candRoom.customAtts[attrName] = v 343 352 344 353 # Resv … … 415 424 candResv.bookedForName = session.getVar( "bookedForName" ) 416 425 candResv.contactPhone = session.getVar( "contactPhone" ) 417 candResv.contactEmail = se ssion.getVar( "contactEmail")426 candResv.contactEmail = setValidEmailSeparators(session.getVar( "contactEmail" )) 418 427 candResv.reason = session.getVar( "reason" ) 419 428 candResv.usesAVC = session.getVar( "usesAVC" ) … … 446 455 candResv.repeatability = self._repeatability 447 456 candResv.bookedForName = params["bookedForName"] 448 candResv.contactEmail = params["contactEmail"]457 candResv.contactEmail = setValidEmailSeparators(params["contactEmail"]) 449 458 candResv.contactPhone = params["contactPhone"] 450 459 candResv.reason = params["reason"] -
indico/MaKaC/webinterface/tpls/RoomBookingBookingForm.tpl
rf25ab4 r3908a4 55 55 isValid = required_fields( ['bookedForName', 'contactEmail', 'reason'] ) && isValid 56 56 57 if ( ! valid_email( $F( 'contactEmail' ) ) )57 if ( !Util.Validation.isEmailList( $F( 'contactEmail' ) ) ) 58 58 { 59 59 isValid = false … … 185 185 <td align="left" class="blacktext"> 186 186 <input type="text" id="contactEmail" name="contactEmail" style="width: 240px;" value="<%= verbose( candResv.contactEmail )%>" /> 187 <% inlineContextHelp( '<b>Required.</b> Contact email. ' ) %>187 <% inlineContextHelp( '<b>Required.</b> Contact email. You can specify more than one email address by separating them with commas, semicolons or whitespaces.' ) %> 188 188 </td> 189 189 </tr> -
indico/MaKaC/webinterface/tpls/RoomBookingDetails.tpl
rcd05ca r3908a4 184 184 <tr> 185 185 <td align="right" valign="top"><small> <%= _("E-mail")%> </small></td> 186 <td align="left" class="blacktext"><a style="font-weight: normal" href="mailto:<%= verbose( reservation.contactEmail ) %>"><%= reservation.contactEmail %></a></td>186 <td align="left" class="blacktext"><a style="font-weight: normal" href="mailto:<%= verbose( reservation.contactEmail ) %>"><%= reservation.contactEmail.replace(',',', ') %></a></td> 187 187 </tr> 188 188 <tr> -
indico/MaKaC/webinterface/tpls/RoomBookingEmail_2UserAfterBookingCancellation.tpl
r9033fd r3908a4 1 Dear <%= reservation.createdByUser().getFirstName()%>,1 Dear <%= firstName %>, 2 2 3 3 … … 10 10 11 11 <%= urlHandlers.UHRoomBookingBookingDetails.getURL( reservation ) %> 12 Room: <%= reservation.room.getFullName() %> 12 Room: <%= reservation.room.getFullName() %> 13 13 For: <%= reservation.bookedForName %> 14 14 Reason: <%= reservation.reason %> 15 Dates: 15 Dates: 16 16 <% if date: %> 17 <%= formatDate(date) %> 17 <%= formatDate(date) %> 18 18 <% end %> 19 19 <% else: %> 20 <%= formatDate(reservation.startDT.date()) %> -- <%= formatDate(reservation.endDT.date()) %> 20 <%= formatDate(reservation.startDT.date()) %> -- <%= formatDate(reservation.endDT.date()) %> 21 21 <% end %> 22 22 Hours: <%= reservation.startDT.strftime("%H:%M") %> -- <%= reservation.endDT.strftime("%H:%M") %> -
indico/MaKaC/webinterface/tpls/RoomBookingEmail_2UserAfterBookingInsertion.tpl
r747504 r3908a4 6 6 <%end%> 7 7 8 Dear <%= reservation.createdByUser().getFirstName()%>,8 Dear <%= firstName %>, 9 9 10 10 11 The conference room <%= reservation.room.getFullName() %> 11 The conference room <%= reservation.room.getFullName() %> 12 12 has been booked for <%= reservation.bookedForName %> 13 13 reason: <%= reservation.reason %> … … 17 17 This is the final confirmation. 18 18 19 NOTE: please be aware that in special (rare) cases the person 20 responsible for this room may reject your booking. In that case, 19 NOTE: please be aware that in special (rare) cases the person 20 responsible for this room may reject your booking. In that case, 21 21 you will be instantly notified by e-mail. 22 22 -
indico/MaKaC/webinterface/tpls/RoomBookingEmail_2UserAfterBookingModification.tpl
r9033fd r3908a4 1 Dear <%= reservation.createdByUser().getFirstName()%>,1 Dear <%= firstName %>, 2 2 3 3 4 4 Your booking has been MODIFIED. 5 5 6 Room: <%= reservation.room.getFullName() %> 6 Room: <%= reservation.room.getFullName() %> 7 7 For: <%= reservation.bookedForName %> 8 8 Reason: <%= reservation.reason %> 9 Dates: <%= formatDate(reservation.startDT.date()) %> -- <%= formatDate(reservation.endDT.date()) %> 9 Dates: <%= formatDate(reservation.startDT.date()) %> -- <%= formatDate(reservation.endDT.date()) %> 10 10 Hours: <%= reservation.startDT.strftime("%H:%M") %> -- <%= reservation.endDT.strftime("%H:%M") %> 11 11 -
indico/MaKaC/webinterface/tpls/RoomBookingEmail_2UserAfterBookingRejection.tpl
r9033fd r3908a4 1 Dear <%= firstName %>,1 Dear User, 2 2 3 3 4 Your booking has been REJECTED by the person responsible for a room.4 Your booking has been REJECTED by the person responsible for a room. 5 5 6 Room: <%= reservation.room.getFullName() %> 6 Room: <%= reservation.room.getFullName() %> 7 7 For: <%= reservation.bookedForName %> 8 8 <% if date: %> 9 Date: <%= date %> ( ONLY THIS DAY IS REJECTED)9 Date: <%= date %> ( ONLY THIS DAY IS REJECTED) 10 10 <% end %> 11 11 <% if not date: %> 12 Dates: <%= formatDate(reservation.startDT.date()) %> -- <%= formatDate(reservation.endDT.date()) %> 12 Dates: <%= formatDate(reservation.startDT.date()) %> -- <%= formatDate(reservation.endDT.date()) %> 13 13 <% end %> 14 14 Hours: <%= reservation.startDT.strftime("%H:%M") %> -- <%= reservation.endDT.strftime("%H:%M") %> 15 15 16 Rejection reason:16 Rejection reason: 17 17 <%= reason %> 18 18 19 19 20 BTW, you can always check your bookings here:20 BTW, you can always check your bookings here: 21 21 <%= urlHandlers.UHRoomBookingBookingList.getURL( onlyMy = True ) %> 22 22 <% includeTpl( 'RoomBookingEmail_Footer' ) %> -
indico/MaKaC/webinterface/tpls/RoomBookingEmail_2UserAfterPreBookingInsertion.tpl
r747504 r3908a4 1 Dear <%= reservation.createdByUser().getFirstName()%>,1 Dear <%= firstName %>, 2 2 3 3 4 NOTE: 4 NOTE: 5 5 Your pre-booking is NOT YET ACCEPTED by person responsible. 6 6 Please be aware that pre-bookings are subject to acceptance 7 or rejection. Expect an e-mail with acceptance/rejection 7 or rejection. Expect an e-mail with acceptance/rejection 8 8 information. 9 9 10 10 INFO: 11 The conference room <%= reservation.room.getFullName() %> 11 The conference room <%= reservation.room.getFullName() %> 12 12 has been pre-booked for <%= reservation.bookedForName %> 13 13 reason: <%= reservation.reason %> -
indico/MaKaC/webinterface/tpls/RoomBookingEmail_2UserRequestProlongation.tpl
r9033fd r3908a4 1 Dear <%= reservation.createdByUser().getFirstName()%>,1 Dear <%= firstName %>, 2 2 3 3 … … 7 7 8 8 <%= urlHandlers.UHRoomBookingBookingDetails.getURL( reservation ) %> 9 Room: <%= reservation.room.getFullName() %> 9 Room: <%= reservation.room.getFullName() %> 10 10 For: <%= reservation.bookedForName %> 11 11 Reason: <%= reservation.reason %> 12 Dates: <%= formatDate(reservation.startDT.date()) %> -- <%= formatDate(reservation.endDT.date()) %> 12 Dates: <%= formatDate(reservation.startDT.date()) %> -- <%= formatDate(reservation.endDT.date()) %> 13 13 Hours: <%= reservation.startDT.strftime("%H:%M") %> -- <%= reservation.endDT.strftime("%H:%M") %> 14 14 -
indico/MaKaC/webinterface/tpls/RoomBookingRoomForm.tpl
rf0c866 r3908a4 237 237 <td class="subFieldWidth" align="right" valign="top"><small><%=ca['name']%> </small></td> 238 238 <td align="left" class="blacktext"><input type="text" name="cattr_<%=ca['name']%>" value=<%= quoteattr(verbose( room.customAtts.get( ca['name'] ) )) %> /> 239 <% if ca['required']: %> 239 <% if ca['name'] == 'notification email' : %> 240 <% if ca['required'] : %> 241 <% inlineContextHelp( '<b>Required.</b> You can specify more than one email address separated by commas, semicolons or whitespaces.' ) %> 242 <% end %> 243 <% else : %> 244 <% inlineContextHelp( 'You can specify more than one email address separated by commas, semicolons or whitespaces.' ) %> 245 <% end %> 246 <% end %> 247 <% elif ca['required'] : %> 240 248 <% inlineContextHelp( '<b>Required.</b>' ) %> 241 249 <% end %> -
indico/MaKaC/webinterface/wcomponents.py
r96485d r3908a4 6494 6494 if not attribute.get("hidden",False) or self._rh._getUser().isAdmin(): 6495 6495 vars["attrs"][attribute['name']] = self._rh._room.customAtts.get(attribute['name'],"") 6496 if attribute['name'] == 'notification email' : 6497 vars["attrs"][attribute['name']] = vars["attrs"][attribute['name']].replace(',', ', ') 6496 6498 vars["config"] = Config.getInstance() 6497 6499 #vars["roomPhoto"] = urlHandlers.UHSendRoomPhoto.getURL( self._rh._room.photoId, small = False )
Note: See TracChangeset
for help on using the changeset viewer.
