Initial commit

This commit is contained in:
Fergal Moran
2015-04-30 23:17:58 +01:00
commit 6f9f29f5fc
193 changed files with 23428 additions and 0 deletions

65
spa/models/basemodel.py Executable file
View File

@@ -0,0 +1,65 @@
import logging
import os
from datetime import datetime
from dirtyfields import DirtyFieldsMixin
from django.db import models
from core.utils import url
from dss import localsettings, settings
class BaseModel(DirtyFieldsMixin, models.Model):
logger = logging.getLogger(__name__)
object_created = models.DateTimeField(auto_now_add=True, default=datetime.now())
object_updated = models.DateTimeField(auto_now=True, default=datetime.now(), db_index=True)
class Meta:
abstract = True
app_label = 'spa'
def tosimplejson(self):
return simplejson.dump(self)
@classmethod
def get_lookup(cls, filter_field, transform=None, filter=None):
if filter is not None:
filter_dict = {'%s__startswith' % filter_field: filter}
return cls.objects.all().filter(filter_dict).extra(select=transform)
else:
return cls.objects.all()
def get_image_url(self, image, default):
try:
if os.path.isfile(image.path):
images_root = localsettings.IMAGE_URL if hasattr(localsettings,
'IMAGE_URL') else "%s" % settings.MEDIA_URL
ret = "%s/%s/%s" % (settings.STATIC_URL, images_root, image)
return url.urlclean(ret)
except Exception, ex:
pass
return default
@classmethod
def get_lookup_filter_field(cls):
field_list = cls._meta.get_all_field_names()
for field in field_list:
if field.endswith("title") or field.endswith("name") or field.endswith("description"):
return field
return "description"
def base_pre_save(self, sender, instance, created, **kwargs):
pass
def clean_image(self, image_field, sender):
# TODO(fergal.moran@gmail.com): stop tastypie nulling image field if not sent
if self.__dict__[image_field] == "DONOTSEND":
try:
old_instance = sender.objects.get(pk=self.pk)
if old_instance is not None:
self.__dict__[image_field] = old_instance.__dict__[image_field]
except Exception, ex:
pass