from models import MapData class MapChanges(RecentChanges): classname = 'map' def queryset(self, start_at=None): if start_at: return MapData.versions.filter(version_info__date__gte=start_at) return MapData.versions.all() def title(self, obj): return 'Map for "%s"' % obj.page.name recentchanges.register(MapChanges) class MapChangesFeed(ChangesOnItemFeed): def get_object(self, request, slug): # TODO: Break out this MapData-get-page pattern into a function. # Non-DRY. page = Page(slug=slugify(slug)) latest_page = page.versions.most_recent() # Need to set the pk on the dummy page for correct MapData lookup. page.pk = latest_page.id page.name = latest_page.name obj = MapData(page=page) obj.page = page obj.title = 'Map for "%s"' % obj.page.name
from models import Page, PageFile, slugify class PageChanges(RecentChanges): classname = 'page' def queryset(self, start_at=None): if start_at: return Page.versions.filter(version_info__date__gte=start_at) return Page.versions.all() def page(self, obj): return obj recentchanges.register(PageChanges) class PageFileChanges(RecentChanges): classname = 'file' def queryset(self, start_at=None): if start_at: return PageFile.versions.filter(version_info__date__gte=start_at) else: return PageFile.versions.all() def page(self, obj): try: page = Page.objects.get(slug=obj.slug) except Page.DoesNotExist:
class RedirectChanges(RecentChanges): classname = 'redirect' def queryset(self, start_at=None): if start_at: return Redirect.versions.filter(version_info__date__gte=start_at) else: return Redirect.versions.all() def page(self, obj): from pages.models import Page return Page(slug=obj.source, name=obj.source.capitalize()) def title(self, obj): return 'Redirect %s --> %s' % (obj.source, obj.destination) def diff_url(self, obj): return reverse('redirects:compare-dates', kwargs={ 'slug': obj.source, 'date1': obj.version_info.date, }) def as_of_url(self, obj): # Don't bother. Just return the source URL. return reverse('pages:show', kwargs={'slug': obj.source}) recentchanges.register(RedirectChanges)
class PageTagSetChanges(RecentChanges): classname = 'tags' def queryset(self, start_at=None): if start_at: return PageTagSet.versions.filter(version_info__date__gte=start_at) return PageTagSet.versions.all() def page(self, obj): return obj.page def title(self, obj): return 'Tags on page "%s"' % self.page(obj).name def diff_url(self, obj): return reverse('pages:tags-compare-dates', kwargs={ 'slug': self.page(obj).pretty_slug, 'date1': obj.version_info.date, }) def as_of_url(self, obj): return reverse('pages:tags-as_of_date', kwargs={ 'slug': self.page(obj).pretty_slug, 'date': obj.version_info.date, }) recentchanges.register(PageTagSetChanges)
from models import PageTagSet class PageTagSetChanges(RecentChanges): classname = "tags" def queryset(self, start_at=None): if start_at: return PageTagSet.versions.filter(version_info__date__gte=start_at) return PageTagSet.versions.all() def page(self, obj): return obj.page def title(self, obj): return 'Tags on page "%s"' % self.page(obj).name def diff_url(self, obj): return reverse( "pages:tags-compare-dates", kwargs={"slug": self.page(obj).pretty_slug, "date1": obj.version_info.date} ) def as_of_url(self, obj): return reverse( "pages:tags-as_of_date", kwargs={"slug": self.page(obj).pretty_slug, "date": obj.version_info.date} ) recentchanges.register(PageTagSetChanges)
from models import MapData class MapChanges(RecentChanges): classname = 'map' def queryset(self, start_at=None): if start_at: return MapData.versions.filter(version_info__date__gte=start_at) return MapData.versions.all() def title(self, obj): return _('Map for "%s"') % obj.page.name recentchanges.register(MapChanges) class MapChangesFeed(ChangesOnItemFeed): def get_object(self, request, slug): # TODO: Break out this MapData-get-page pattern into a function. # Non-DRY. page = Page(slug=slugify(slug)) latest_page = page.versions.most_recent() # Need to set the pk on the dummy page for correct MapData lookup. page.pk = latest_page.id page.name = latest_page.name obj = MapData(page=page) obj.page = page obj.title = _('Map for "%s"') % obj.page.name