コード例 #1
0
ファイル: feeds.py プロジェクト: WardCunningham/localwiki
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
コード例 #2
0
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:
コード例 #3
0
ファイル: feeds.py プロジェクト: tnq/localwiki

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)
コード例 #4
0
ファイル: feeds.py プロジェクト: schlos/localwiki
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)
コード例 #5
0
ファイル: feeds.py プロジェクト: WardCunningham/localwiki
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:
コード例 #6
0
ファイル: feeds.py プロジェクト: niran/localwiki
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)
コード例 #7
0
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