Cleans up base model
This commit is contained in:
24
fedireads/models/base_model.py
Normal file
24
fedireads/models/base_model.py
Normal file
@ -0,0 +1,24 @@
|
||||
''' base model with default fields '''
|
||||
from django.db import models
|
||||
|
||||
from fedireads.settings import DOMAIN
|
||||
|
||||
class FedireadsModel(models.Model):
|
||||
''' fields and functions for every model '''
|
||||
created_date = models.DateTimeField(auto_now_add=True)
|
||||
updated_date = models.DateTimeField(auto_now=True)
|
||||
|
||||
@property
|
||||
def absolute_id(self):
|
||||
''' constructs the absolute reference to any db object '''
|
||||
if self.remote_id:
|
||||
return self.remote_id
|
||||
|
||||
base_path = 'https://%s' % DOMAIN
|
||||
if hasattr(self, 'user'):
|
||||
base_path = self.user.absolute_id
|
||||
model_name = type(self).__name__.lower()
|
||||
return '%s/%s/%d' % (base_path, model_name, self.id)
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
@ -6,7 +6,7 @@ from model_utils.managers import InheritanceManager
|
||||
from fedireads import activitypub
|
||||
from fedireads.settings import DOMAIN
|
||||
from fedireads.utils.fields import JSONField, ArrayField
|
||||
from fedireads.utils.models import FedireadsModel
|
||||
from .base_model import FedireadsModel
|
||||
|
||||
from fedireads.connectors.settings import CONNECTORS
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
from django.db import models
|
||||
|
||||
from fedireads import activitypub
|
||||
from fedireads.utils.models import FedireadsModel
|
||||
from .base_model import FedireadsModel
|
||||
|
||||
|
||||
class Shelf(FedireadsModel):
|
||||
|
@ -7,7 +7,7 @@ from django.db import models
|
||||
from model_utils.managers import InheritanceManager
|
||||
|
||||
from fedireads import activitypub
|
||||
from fedireads.utils.models import FedireadsModel
|
||||
from .base_model import FedireadsModel
|
||||
|
||||
|
||||
class Status(FedireadsModel):
|
||||
@ -113,13 +113,6 @@ class Favorite(FedireadsModel):
|
||||
status = models.ForeignKey('Status', on_delete=models.PROTECT)
|
||||
remote_id = models.CharField(max_length=255, unique=True, null=True)
|
||||
|
||||
@property
|
||||
def absolute_id(self):
|
||||
''' constructs the absolute reference to any db object '''
|
||||
if self.remote_id:
|
||||
return self.remote_id
|
||||
return super().absolute_id
|
||||
|
||||
class Meta:
|
||||
unique_together = ('user', 'status')
|
||||
|
||||
|
@ -7,7 +7,7 @@ from django.dispatch import receiver
|
||||
|
||||
from fedireads.models.shelf import Shelf
|
||||
from fedireads.settings import DOMAIN
|
||||
from fedireads.utils.models import FedireadsModel
|
||||
from .base_model import FedireadsModel
|
||||
|
||||
|
||||
class User(AbstractUser):
|
||||
|
Reference in New Issue
Block a user