Ejemplo n.º 1
0
class Store(models.Model):
    name = models.CharField(_('Name'), max_length=100)
    slug = models.SlugField(_('Slug'), max_length=100, unique=True, null=True)

    reference = models.CharField(
        _("Reference"), max_length=32, unique=True, null=True, blank=True,
        help_text=_("A reference number that uniquely identifies this store"))

    image = models.ImageField(
        _("Image"),
        upload_to="images/stores",
        blank=True, null=True
    )
    description = models.CharField(
        _("Description"),
        max_length=2000,
        blank=True, null=True
    )
    location = PointField(
        _("Location"),
        srid=STORES_SRID
    )

    group = models.ForeignKey('stores.StoreGroup', related_name='stores',
                              verbose_name=_("Group"), null=True, blank=True)

    is_pickup_store = models.BooleanField(_("Is pickup store"), default=True)
    is_active = models.BooleanField(_("Is active"), default=True)

    objects = StoreManager()

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)
        super(Store, self).save(*args, **kwargs)

    def __unicode__(self):
        return self.name
class Store(models.Model):
    name = models.CharField(_('Name'), max_length=100)
    slug = models.SlugField(_('Slug'), max_length=100, null=True)

    # Contact details
    manager_name = models.CharField(_('Manager name'),
                                    max_length=200,
                                    blank=True,
                                    null=True)
    phone = models.CharField(_('Phone'), max_length=64, blank=True, null=True)
    email = models.CharField(_('Email'), max_length=100, blank=True, null=True)

    reference = models.CharField(
        _("Reference"),
        max_length=32,
        unique=True,
        null=True,
        blank=True,
        help_text=_("A reference number that uniquely identifies this store"))

    image = models.ImageField(_("Image"),
                              upload_to="uploads/store-images",
                              blank=True,
                              null=True)
    description = models.CharField(_("Description"),
                                   max_length=2000,
                                   blank=True,
                                   null=True)
    location = PointField(
        _("Location"),
        srid=get_geodetic_srid(),
    )

    group = models.ForeignKey('stores.StoreGroup',
                              related_name='stores',
                              verbose_name=_("Group"),
                              null=True,
                              blank=True)

    is_pickup_store = models.BooleanField(_("Is pickup store"), default=True)
    is_active = models.BooleanField(_("Is active"), default=True)

    objects = StoreManager()

    class Meta:
        abstract = True
        ordering = ('name', )

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)
        super(Store, self).save(*args, **kwargs)

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('stores:detail',
                       kwargs={
                           'dummyslug': self.slug,
                           'pk': self.pk
                       })

    @property
    def has_contact_details(self):
        return any([self.manager_name, self.phone, self.email])