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'])
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()
""" 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__())
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)
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'])