Beispiel #1
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(settings.DATE_FORMAT_STRING)
        except:
            return 0

register(Communication, ['title'])
Beispiel #2
0
        return LogEntry.objects.filter(content_type=ct,
                                       object_id=self.id).count()

    def is_public_yet(self):
        """
        Returns whether this event should be shown in the public events calendar and feeds yet.
        """
        return self.displayFrom <= datetime.now()


class SteamEvent(Event):
    steam_id = models.CharField(max_length=50)


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()
Beispiel #3
0
        """
        Returns the number of modifications in the admin interface to this item
        """
        ct = ContentType.objects.get(app_label='events', model='event')
        return LogEntry.objects.filter(content_type=ct,object_id=self.id).count()

    def is_public_yet(self):
        """
        Returns whether this event should be shown in the public events calendar and feeds yet.
        """
        return self.displayFrom <= datetime.now()

class SteamEvent(Event):
    steam_id = models.CharField(max_length=50)

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__())
Beispiel #4
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)
Beispiel #5
0
    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(
                    settings.DATE_FORMAT_STRING)
        except:
            return 0


register(Communication, ['title'])