~cjohnston/summit/vagrant-support

« back to all changes in this revision

Viewing changes to summit/schedule/models/summitmodel.py

  • Committer: Tarmac
  • Author(s): Chris Johnston
  • Date: 2013-02-20 18:45:50 UTC
  • mfrom: (480.1.3 vds)
  • Revision ID: tarmac@geekpad-20130220184550-vv6jdz0c9qmzcmtk
[r=mhall119] Adds URL/virt fields, cleans up some tests, pep8 fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
60
60
User.__unicode__ = unicode_user
61
61
 
62
62
class SummitManager(CurrentSiteManager):
63
 
    
 
63
 
64
64
    def next(self):
65
65
        try:
66
66
            return self.order_by('-date_start')[0]
93
93
    date_end = models.DateField(blank=False, null=True)
94
94
    managers = models.ManyToManyField(User, blank=True, related_name='managers')
95
95
    schedulers = models.ManyToManyField(User, blank=True, related_name='schedulers')
96
 
 
 
96
    virtual_summit = models.BooleanField(
 
97
        help_text="Check this if the entire sprint is virtual"
 
98
    )
97
99
    help_text = models.TextField(null=True, blank=True, help_text='Summit specific instructions and links for getting help during the event')
98
 
    
 
100
 
99
101
    objects = models.Manager()
100
102
    on_site = SummitManager()
101
 
    
 
103
 
102
104
    class Meta:
103
105
        app_label = 'schedule'
104
106
        ordering = ('name', )
108
110
 
109
111
    def get_absolute_url(self):
110
112
        return getattr(settings, 'SITE_ROOT', 'http://summit.ubuntu.com') + reverse('summit.schedule.views.summit', args=(self.name,))
111
 
        
 
113
 
112
114
    def localize(self, datetime):
113
115
        """Convert a datetime to the summit-local timezone.
114
116
 
171
173
 
172
174
    def ical_url(self):
173
175
        return getattr(settings, 'SITE_ROOT', 'http://summit.ubuntu.com') + reverse('summit.schedule.views.ical', args=(self.name,))
174
 
        
 
176
 
175
177
    def public_rooms(self):
176
178
        """List of public rooms for this summit.
177
179
 
212
214
 
213
215
    def private_rooms(self):
214
216
        """List fo private rooms for this summit."""
215
 
        
 
217
 
216
218
        def by_title(a, b):
217
219
            if a.track is None:
218
220
                return 1
289
291
 
290
292
    def update_attendee_from_launchpad(self, elem, options={}):
291
293
        """Update or create single attendee from Launchpad data."""
292
 
        
 
294
 
293
295
        username = elem.get("name", "")
294
296
        if not username:
295
297
            return
372
374
        """Delete any automatically created agenda items that have problems."""
373
375
        today = datetime.now()
374
376
        for meeting in self.meeting_set.all():
375
 
            for agenda in meeting.agenda_set.filter(auto=True, slot__start_utc__gt=today):
 
377
            for agenda in meeting.agenda_set.filter(
 
378
                auto=True,
 
379
                slot__start_utc__gt=today
 
380
            ):
376
381
                try:
377
382
                    missing = meeting.check_schedule(agenda.slot, agenda.room)
378
383
                    if len(missing):
379
 
                        print "Warning: required people not available: %s (%s) at %s in %s: %s" % (
380
 
                            meeting, meeting.drafter, agenda.slot, agenda.room,
381
 
                            ', '.join(m.user.username for m in missing))
 
384
                        print "Warning: required people not available:"
 
385
                        print "%s (%s) at %s in %s: %s" % (
 
386
                            meeting,
 
387
                            meeting.drafter,
 
388
                            agenda.slot,
 
389
                            agenda.room,
 
390
                            ', '.join(m.user.username for m in missing)
 
391
                        )
382
392
                        agenda.delete()
383
393
                except meeting.SchedulingError, e:
384
 
                    print "Error: %s at %s in %s: %s" % (meeting,
385
 
                                                         agenda.slot,
386
 
                                                         agenda.room,
387
 
                                                         e)
 
394
                    print "Error: %s at %s in %s: %s" % (
 
395
                        meeting,
 
396
                        agenda.slot,
 
397
                        agenda.room,
 
398
                        e
 
399
                    )
388
400
                    agenda.delete()
389
401
 
390
402
    def can_change_agenda(self, attendee):