Example #1
0
    '''
    Generates a list of event types t and events e s.t. e is the
    next event for t.  Restricted to the next n events
    '''
    types = EventType.objects.all()
    future = []
    for type in types:
        try:
            event = type.event_set.filter(finish__gte=datetime.now()).exclude(displayFrom__gte=datetime.now()).order_by('start')[0]
        except IndexError:
            pass
        else:
            future.append((type,event))
    return sorted(future,key=lambda (t,e): e.start)[:n]

register(Event,['shortDescription','longDescription','get_type_name'],order='-start',filter=lambda: Q(displayFrom__lte=datetime.now(), cancelled=False))

post_save.connect(write_file_callback, sender=Event)
post_delete.connect(write_file_callback, sender=Event)
post_save.connect(write_file_callback, sender=SteamEvent)
post_delete.connect(write_file_callback, sender=SteamEvent)

class SeatingRoom(models.Model):
    '''Information a room that people are sat in'''
    room = models.ForeignKey(Location)
    name = models.CharField(max_length=50)
    max_cols = models.IntegerField()
    max_rows = models.IntegerField()

    def __unicode__(self):
        return "%s @ %s" % (self.name,self.room.__unicode__())
Example #2
0
                a.move(self, save=True)

        if with_children:
            failed = []
            for child in children:
                suffix = child.slug.rstrip('/').split('/')[-1]
                # disjointed pages can exist, we might end up moving a 
                # child to somewhere that already exists, in this case we note
                # that one for return
                try:
                    child.move("%s/%s" % (destination, suffix))
                except PageAlreadyExists:
                    failed.append(child)
            return failed

register(Page, ['title','text'])

class MovableFieldFile(FieldFile):
    """
    An extension to the standard FieldFile with the added ability to be moved/renamed.
    """
    def move(self, destination, save=False):
        """
        Will move the file on disk and update the model to reflect this.
        """
        self._require_file()

        old_location = self._name
        self._name = self.storage.save(destination, self.file)
        setattr(self.instance, self.field.name, self.name)
Example #3
0
        return Communication.objects.filter(date__lte=self.date).filter(type=self.type).exclude(pk=self.id)

    def has_next_item(self):
        return bool(self.successors())

    def has_prev_item(self):
        return bool(self.predecessors())

    def next_item(self):
        # earliest successor
        return self.successors().order_by("date")[0]

    def prev_item(self):
        return self.predecessors().latest("date")

    def last_change_time(self):
        from django.contrib.admin.models import LogEntry, ContentType

        try:
            cct = ContentType.objects.get(name="communication")
            return (
                LogEntry.objects.filter(object_id=self.pk, content_type=cct)
                .latest("action_time")
                .action_time.strftime(DATE_FORMAT_STRING)
            )
        except:
            return 0


register(Communication, ["title"])
Example #4
0
        return self.title

    def successors(self):
        return Communication.objects.filter(date__gte=self.date).filter(type=self.type).exclude(pk=self.id)
    
    def predecessors(self):
        return Communication.objects.filter(date__lte=self.date).filter(type=self.type).exclude(pk=self.id)

    def has_next_item(self):
        return bool(self.successors())

    def has_prev_item(self):
        return bool(self.predecessors())

    def next_item(self):
        # earliest successor
        return self.successors().order_by('date')[0]

    def prev_item(self):
        return self.predecessors().latest('date')
    
    def last_change_time(self):
        from django.contrib.admin.models import LogEntry,ContentType
        try:
            cct = ContentType.objects.get(name='communication')
            return LogEntry.objects.filter(object_id=self.pk,content_type=cct).latest('action_time').action_time.strftime(DATE_FORMAT_STRING)
        except:
            return 0

register(Communication, ['title'])