Skip to content
Snippets Groups Projects
Commit e8db6a94 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

Add abstract models

parent dc7368d5
No related branches found
No related tags found
No related merge requests found
...@@ -47,6 +47,58 @@ class ScheduleConflictError(ValidationError): ...@@ -47,6 +47,58 @@ class ScheduleConflictError(ValidationError):
self.conflicts = conflicts self.conflicts = conflicts
class ModelWithImageFields(models.Model):
"""Abstract model that adds:
- `image`, a `VersatileImageField`
- `image_ppoi`, a `PPOIField`
- `image_width`, a `PositiveIntegerField`
- `image_height`, a `PositiveIntegerField`
- `image_credits`, a `TextField`
- `image_alt_text`, a `TextField`
"""
image = VersatileImageField(
blank=True,
null=True,
upload_to="images",
width_field="image_width",
height_field="image_height",
ppoi_field="image_ppoi",
)
image_ppoi = PPOIField()
image_width = models.PositiveIntegerField(blank=True, null=True, editable=False)
image_height = models.PositiveIntegerField(blank=True, null=True, editable=False)
image_credits = models.TextField(blank=True, null=True)
image_alt_text = models.TextField(blank=True, null=True)
class Meta:
abstract = True
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
if self.image.name and THUMBNAIL_SIZES:
for size in THUMBNAIL_SIZES:
self.image.thumbnail = self.image.crop[size].name
class ModelWithCreatedUpdatedFields(models.Model):
"""Abstract model that adds:
- `created_at`, a `DateTimeField` with `auto_now_add=True`
- `updated_at`, a `DateTimeField` with `auto_now=True`
- `created_by`, a `CharField`
- `updated_by`, a `CharField`
"""
created_at = models.DateTimeField(auto_now_add=True)
created_by = models.CharField()
updated_at = models.DateTimeField(auto_now=True)
updated_by = models.CharField()
class Meta:
abstract = True
class Type(models.Model): class Type(models.Model):
name = models.CharField(max_length=32) name = models.CharField(max_length=32)
slug = models.SlugField(max_length=32, unique=True) slug = models.SlugField(max_length=32, unique=True)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment