Changeset e5c6e0 in indico
- Timestamp:
- 09/30/09 15:52:38 (4 years ago)
- Branches:
- master, burotel, hello-world-walkthrough, ipv6, new-webex, prov-dual-interface, v0.97-series, v0.98-series, v0.98.2, v0.98.3, v0.98b1, v0.98b2, v0.99, 051b2622c51afb171a1dedb46a0df4fbb0cbd02e, d9941f8582b36b24821a11ea5ba16fda6a457fb1
- Children:
- df9ebc
- Parents:
- 570909
- git-author:
- Pedro Ferreira <jose.pedro.ferreira@…> (09/23/09 14:23:53)
- git-committer:
- Pedro Ferreira <jose.pedro.ferreira@…> (09/30/09 15:52:38)
- Files:
-
- 2 edited
-
indico/MaKaC/schedule.py (modified) (7 diffs)
-
tests/testSchedule.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
indico/MaKaC/schedule.py
r570909 re5c6e0 146 146 entry.getSchedule().removeEntry(entry) 147 147 148 owner = self.getOwner() 149 148 150 # If user has entered start date use these dates 149 151 # if the entry has not a pre-defined start date we try to find a place … … 153 155 if sDate is None: 154 156 if check==2: 155 owner = self.getOwner()156 157 newEndDate = self.getEndDate() + entry.getDuration() 157 158 … … 160 161 owner, 161 162 newEndDate.astimezone(timezone(owner.getConference().getTimezone())), 162 self.getAdjustedEndDate()163 owner.getAdjustedEndDate() 163 164 )) 164 165 … … 175 176 raise TimingError( _("Cannot schedule this entry because its start date (%s) is before its parents (%s)")%(entry.getStartDate(),self.getStartDate('UTC')),_("Add Entry")) 176 177 elif check == 2: 177 autoOps += self.getOwner().setStartDate(entry.getStartDate(),check) 178 autoOps.append((owner, 179 "OWNER_START_DATE_EXTENDED", 180 owner, 181 entry.getAdjustedStartDate(), 182 owner.getAdjustedStartDate() 183 )) 184 autoOps += owner.setStartDate(entry.getStartDate(),check) 178 185 elif entry.getEndDate()>self.getEndDate('UTC'): 179 186 if check==1: 180 187 raise TimingError( _("Cannot schedule this entry because its end date (%s) is after its parents (%s)")%(entry.getEndDate(),self.getEndDate('UTC')),_("Add Entry")) 181 188 elif check == 2: 182 autoOps += self.getOwner().setEndDate(entry.getEndDate(),check) 189 autoOps.append((owner, 190 "OWNER_END_DATE_EXTENDED", 191 owner, 192 entry.getAdjustedEndDate(), 193 owner.getAdjustedEndDate() 194 )) 195 autoOps += owner.setEndDate(entry.getEndDate(),check) 183 196 #we make sure the entry end date does not go outside the schedule 184 197 # boundaries … … 729 742 730 743 autoOps = [] 744 owner = self.getOwner() 731 745 732 746 if (entry is None) or self.hasEntry(entry): … … 745 759 _("Slot")) 746 760 elif check == 2: 761 autoOps.append((owner, 762 "OWNER_START_DATE_EXTENDED", 763 owner, 764 entry.getAdjustedStartDate(), 765 owner.getAdjustedStartDate() 766 )) 747 767 autoOps += self.getOwner().setStartDate(entry.getStartDate(),check,0) 748 768 if entry.getEndDate()!=None and entry.getEndDate() > self.getOwner().getEndDate(): … … 753 773 "Slot") 754 774 elif check == 2: 775 autoOps.append((owner, 776 "OWNER_END_DATE_EXTENDED", 777 owner, 778 entry.getAdjustedEndDate(), 779 owner.getAdjustedEndDate() 780 )) 755 781 autoOps += self.getOwner().setEndDate(entry.getEndDate(),check) 756 782 self._setEntryDuration(entry) -
tests/testSchedule.py
r570909 re5c6e0 301 301 self._slot2_eDate = datetime(2009, 9, 21, 19, 0, 0, tzinfo=timezone("UTC")) 302 302 303 self._slot2_laterDate = datetime(2009, 9, 21, 20, 0, 0, tzinfo=timezone("UTC")) 304 303 305 self._session1 = Session() 304 306 self._session1.setValues({ … … 326 328 session.addContribution(contrib) 327 329 328 contrib.setDuration(duration,0)329 contrib.setStartDate(sDate)330 331 return contrib 330 autoOps = contrib.setDuration(duration,0) 331 autoOps += contrib.setStartDate(sDate) 332 333 return contrib, autoOps 332 334 333 335 def _expandNewTest(self, sDate, duration, expSDate, expEDate): … … 336 338 schedule = ConferenceSchedule(self._conf) 337 339 338 contrib = self._addContribToSession(self._session1, sDate, duration)340 contrib, autoOps = self._addContribToSession(self._session1, sDate, duration) 339 341 340 342 # scheduling 341 autoOps = self._slot2.getSchedule().addEntry(contrib.getSchEntry())343 autoOps += self._slot2.getSchedule().addEntry(contrib.getSchEntry()) 342 344 343 345 self.assert_(self._slot2.getAdjustedStartDate() == expSDate) … … 351 353 schedule = ConferenceSchedule(self._conf) 352 354 353 contrib = self._addContribToSession(self._session1, sDate, sDuration)355 contrib, autoOps = self._addContribToSession(self._session1, sDate, sDuration) 354 356 355 357 # scheduling … … 367 369 def testNewContentExpandsSlotDown(self): 368 370 """ A slot grows down due to new overflowing content """ 369 return self._expandNewTest( datetime(2009, 9, 21, 18, 0, 0, tzinfo=timezone("UTC")),371 return self._expandNewTest(self._slot2_sDate, 370 372 2, 371 373 self._slot2_sDate, 372 datetime(2009, 9, 21, 20, 0, 0, tzinfo=timezone("UTC")))374 self._slot2_laterDate) 373 375 374 376 def testNotifyNewContentExpandsSlotDown(self): 375 377 """ When a slot grows down (new content), proper notification is triggered """ 376 378 377 self.assert_(self.testNewContentExpandsSlotDown() == []) 379 ops = self.testNewContentExpandsSlotDown() 380 381 self.assert_(len(ops) == 2) 382 383 op1 = ops[0] 384 op2 = ops[1] 385 386 self.assert_(type(op1[0]) == SessionSlot) 387 self.assert_(op1[1] == 'OWNER_END_DATE_EXTENDED') 388 self.assert_(type(op1[2]) == SessionSlot) 389 self.assert_(op1[3] == self._slot2_laterDate) 390 self.assert_(op1[4] == self._slot2_eDate) 391 392 self.assert_(type(op2[0]) == SessionSlot) 393 self.assert_(op2[1] == 'OWNER_END_DATE_EXTENDED') 394 self.assert_(type(op2[2]) == Session) 395 self.assert_(op2[3] == self._slot2_laterDate) 396 self.assert_(op2[4] == self._slot2_eDate) 378 397 379 398 def testNewContentExpandsSlotUp(self): 380 399 """ A slot grows up due to new "underflowing" content """ 381 self._expandNewTest(datetime(2009, 9, 21, 17, 0, 0, tzinfo=timezone("UTC")), 382 2, 383 datetime(2009, 9, 21, 17, 0, 0, tzinfo=timezone("UTC")), 384 self._slot2_eDate) 400 return self._expandNewTest(self._slot1_sDate, 401 2, 402 self._slot1_sDate, 403 self._slot2_eDate) 404 405 def testNotifyNewContentExpandsSlotUp(self): 406 """ When a slot grows up (new content), proper notification is triggered """ 407 408 # import rpdb2; rpdb2.start_embedded_debugger_interactive_password() 409 410 ops = self.testNewContentExpandsSlotUp() 411 412 self.assert_(len(ops) == 2) 413 414 op1 = ops[0] 415 op2 = ops[1] 416 417 self.assert_(type(op1[0]) == SessionSlot) 418 self.assert_(op1[1] == 'OWNER_START_DATE_EXTENDED') 419 self.assert_(type(op1[2]) == SessionSlot) 420 self.assert_(op1[3] == self._slot1_sDate) 421 self.assert_(op1[4] == self._slot2_sDate) 422 423 # in an ideal world, this one should not be shown 424 self.assert_(type(op2[0]) == SessionSlot) 425 self.assert_(op2[1] == 'OWNER_END_DATE_EXTENDED') 426 self.assert_(type(op2[2]) == SessionSlot) 427 self.assert_(op2[3] == self._slot2_eDate) 428 self.assert_(op2[4] == self._slot2_sDate) 385 429 386 430 def testNewContentExpandsSlotBoth(self): 387 431 """ A slot grows up due to new content that both "underflows" and overflows """ 388 432 self._expandNewTest(datetime(2009, 9, 21, 17, 0, 0, tzinfo=timezone("UTC")), 389 3,390 datetime(2009, 9, 21, 17, 0, 0, tzinfo=timezone("UTC")),391 datetime(2009, 9, 21, 20, 0, 0, tzinfo=timezone("UTC")))433 3, 434 self._slot1_sDate, 435 self._slot2_laterDate) 392 436 393 437 def testNewCrossingDoesNotCorruptSessionTime(self): … … 399 443 earlyDate = datetime(2009, 9, 21, 16, 0, 0, tzinfo=timezone("UTC")) 400 444 401 contrib = self._addContribToSession(self._session1, earlyDate, 1)445 contrib, autoOps = self._addContribToSession(self._session1, earlyDate, 1) 402 446 403 447 # scheduling … … 435 479 436 480 schedule = ConferenceSchedule(self._conf) 437 contrib = self._addContribToSession(self._session1, self._slot2_sDate, 1)481 contrib, autoOps = self._addContribToSession(self._session1, self._slot2_sDate, 1) 438 482 439 483 # scheduling
Note: See TracChangeset
for help on using the changeset viewer.
