Example #1
0
from application.apps.locale.models import locale_model, DEFAULT_FIELD


class PageManager(models.Manager):
    """ Object manager for Page class """

    def get_active_page(self, title_slug):
        return self.get(title_slug=title_slug, active=True)


class SliderImage(Image):
    pass


slider_page_localized = locale_model({
    'title': DEFAULT_FIELD,
    'body': ('TextField', {'blank': True, 'default': ''})
})
class SliderPage(slider_page_localized):

    image = models.ForeignKey(SliderImage, verbose_name=_('Image'), related_name='pages', null=True, blank=True)
    order = models.IntegerField(max_length=3, default=0)
    active = models.BooleanField(default=True, verbose_name=_('Active on site'))
    title = models.CharField(max_length=32, verbose_name=_('Internal title'))
    created = models.DateTimeField(auto_now_add=True, verbose_name=_('Created'))
    updated = models.DateTimeField(auto_now=True, verbose_name=_('Updated'))

    class Meta:
        verbose_name = _('Slider page')
        verbose_name_plural = _('Slider pages')

    def __unicode__(self):
Example #2
0
        queryset = self.filter(active=True, amount__gt=0)
        queryset = queryset.order_by('-featured', '-num_views', '-created')

        if prefetch:
            queryset = queryset.select_related('product_type')
            queryset = queryset.select_related('currency')
            queryset = queryset.prefetch_related('product_type')
            queryset = queryset.prefetch_related('business_domains')
            queryset = queryset.prefetch_related('images')

        return queryset

ad_localized = locale_model({
    'title': ('CharField', {
        'max_length': 64, 'blank': True, 'verbose_name': _('Title'), 'help_text': _('The title of your ad'), 'db_index': True}),
    'description': ('TextField', {
        'blank': True, 'verbose_name': _('Description'),
        'help_text': _('A detailed description of your ad. Use English language to reach a wider audience.')})
})
class Ad(ad_localized):
    """ Ad """

    objects = AdsManager()

    price = models.DecimalField(max_digits=20, decimal_places=2, verbose_name=_('Price / pcs'), help_text=_('Help text for the price'))
    currency = models.ForeignKey(Currency, related_name='+', verbose_name='Currency', help_text=_('Help text for the currency'))
    amount = models.IntegerField(verbose_name=_('Amount'), help_text=_('The amount of items you are selling.'))
    published = models.BooleanField(default=True, verbose_name='Published', help_text=_('Help text for published'), db_index=True)

    product_type = models.ForeignKey('ProductType', related_name='ads', verbose_name=_('Product type'), help_text=_('Help text for product type'))
    business_domains = models.ManyToManyField('BusinessDomain', related_name='ads', verbose_name=_('Business domains'), help_text=_('Help text for business domains'))