Esempio n. 1
0
File: models.py Progetto: abael/cms
    
    authors = models.ManyToManyField(
        User,
        blank = True,
    )
    
    def _get_permalink_for_page(self, page):
        """Returns the URL of this article for the given news feed page."""
        return page.reverse("article_detail", kwargs={
            "year": self.date.year,
            "month": self.date.strftime("%b").lower(),
            "day": self.date.day,
            "url_title": self.url_title,
        })
    
    def get_absolute_url(self):
        """Returns the URL of the article."""
        return self._get_permalink_for_page(self.news_feed.page)
    
    class Meta:
        unique_together = (("news_feed", "date", "url_title",),)
        ordering = ("-date",)
        
        
externals.historylinks("register", Article)


sitemaps.register(Article)


externals.watson("register", Article, adapter_cls=PageBaseSearchAdapter)
Esempio n. 2
0
from cms import sitemaps
from cms.apps.media.models import ImageRefField
from cms.models import PageBase
from django.db import models
from historylinks import shortcuts as historylinks


class Partner(PageBase):

    summary = models.TextField(max_length=140, blank=True, null=True)

    logo = ImageRefField()

    website = models.CharField(max_length=140, blank=True, null=True)

    order = models.PositiveIntegerField(default=0)

    class Meta:
        ordering = ['order']

    def __str__(self):
        return self.title


historylinks.register(Partner)
sitemaps.register(Partner)
Esempio n. 3
0
                name='page_mptt_values',
            )
        ]


class PageSitemap(sitemaps.PageBaseSitemap):
    '''Sitemap for page models.'''

    model = Page

    def items(self):
        '''Only lists items that are marked as indexable.'''
        return filter_indexable_pages(super().items())


sitemaps.register(Page, sitemap_cls=PageSitemap)


class PageSearchAdapter(PageBaseSearchAdapter):
    '''Search adapter for Page models.'''
    def get_content(self, obj):
        '''Returns the search text for the page.'''
        content_obj = obj.content

        return ' '.join([
            super().get_content(obj),
            self.prepare_content(content_obj.get_searchable_text())
        ])

    def get_live_queryset(self):
        '''Selects the live page queryset.'''
Esempio n. 4
0
    )

    class Meta:
        ordering = ['start_date']

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        if self.page:
            return self.page.page.reverse('event_detail',
                                          kwargs={
                                              'slug': self.slug,
                                          })

    def get_summary(self):
        return self.summary

    @property
    def date(self):
        date_string = '{}'.format(date(self.start_date, 'j F Y'))

        if self.start_date != self.end_date:
            date_string += ' - {}'.format(date(self.end_date, 'j F Y'))

        return date_string


historylinks.register(Event)
sitemaps.register(Event)
Esempio n. 5
0
    @property
    def last_modified(self):
        version = Version.objects.get_for_object(self).first()

        if version:
            return version.revision.date_created

    def render_card(self):
        return render_to_string('news/includes/card.html', {
            'article': self,
        })

    def get_related_articles(self, count=3):
        related_articles = Article.objects.filter(
            categories=self.categories.all(),
        ).exclude(
            id=self.id
        )

        if related_articles.count() < count:
            related_articles |= Article.objects.exclude(
                id__in=[self.pk] + [x.id for x in related_articles]
            )

        return related_articles.distinct()[:count]


historylinks.register(Article)
sitemaps.register(Article)
Esempio n. 6
0
externals.historylinks("register", Page)


class PageSitemap(sitemaps.PageBaseSitemap):

    """Sitemap for page models."""

    model = Page

    def items(self):
        """Only lists items that are marked as indexable."""
        return filter_indexable_pages(super(PageSitemap, self).items())


sitemaps.register(Page, sitemap_cls=PageSitemap)


class PageSearchAdapter(PageBaseSearchAdapter):

    """Search adapter for Page models."""

    def get_content(self, obj):
        """Returns the search text for the page."""
        content_obj = obj.content

        return u" ".join((
            super(PageSearchAdapter, self).get_content(obj),
            self.prepare_content(u" ".join(
                force_text(self._resolve_field(content_obj, field_name))
                for field_name in (
Esempio n. 7
0
        'Category',
        blank=True,
        null=True,
    )

    question = models.CharField(
        max_length=256
    )

    answer = HtmlField()

    order = models.PositiveIntegerField(
        default=0
    )

    def __str__(self):
        return self.question

    class Meta:
        verbose_name = 'FAQ'
        verbose_name_plural = 'FAQs'
        ordering = ['order', 'question']

    def get_absolute_url(self):
        return self.page.page.reverse('faq_detail', kwargs={
            'slug': self.slug,
        })

historylinks.register(Faq)
sitemaps.register(Faq)
Esempio n. 8
0
    def get_absolute_url(self):
        return self.page.page.reverse('person_detail', kwargs={
            'slug': self.slug,
        })

    def get_twitter_url(self):
        twitter_username = self.twitter_username

        if twitter_username.startswith('http://') or twitter_username.startswith('https://'):
            return self.twitter_username

        if self.twitter_username.startswith('@'):
            twitter_username = twitter_username[1:]

        return f'https://twitter.com/{twitter_username}'

    def get_linkedin_url(self):
        linkedin_username = self.linkedin_username

        if linkedin_username.startswith('http://') or linkedin_username.startswith('https://'):
            return self.linked_username

        if linkedin_username.startswith('@'):
            linkedin_username = linkedin_username[1:]

        return f'https://www.linkedin.com/in/{linkedin_username}'

historylinks.register(Person)
sitemaps.register(Person)
Esempio n. 9
0
    def test_register(self):
        register(TestSitemapModel)

        with self.assertRaises(SitemapRegistrationError):
            register(TestSitemapModel)

        self.assertEqual(
            registered_sitemaps['testing_models-testsitemapmodel'].
            __bases__[0], BaseSitemap)

        register(TestSearchMetaBaseModel)

        self.assertEqual(
            registered_sitemaps['testing_models-testsearchmetabasemodel'].
            __bases__[0], SearchMetaBaseSitemap)

        register(TestOnlineBaseModel)

        self.assertEqual(
            registered_sitemaps['testing_models-testonlinebasemodel'].
            __bases__[0], OnlineBaseSitemap)

        register(TestPublishedBaseModel)

        self.assertEqual(
            registered_sitemaps['testing_models-testpublishedbasemodel'].
            __bases__[0], PublishedBaseSitemap)

        register(TestPageBaseModel)

        self.assertEqual(
            registered_sitemaps['testing_models-testpagebasemodel'].
            __bases__[0], PageBaseSitemap)
Esempio n. 10
0
        blank=True,
        null=True
    )

    summary = models.TextField(
        blank=True,
        null=True
    )

    description = HtmlField()

    email_address = models.EmailField()

    order = models.PositiveIntegerField(
        default=0
    )

    class Meta:
        ordering = ['order']

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return self.page.page.reverse('career_detail', kwargs={
            'slug': self.slug,
        })

historylinks.register(Career)
sitemaps.register(Career)