default/upload_to=lambda breaks migrations, use functions
This commit is contained in:
parent
e22cc432b3
commit
5d63ad1760
6 changed files with 38 additions and 21 deletions
|
@ -23,6 +23,9 @@ from person.models import get_name_sort
|
||||||
from chunk import save_chunk
|
from chunk import save_chunk
|
||||||
import extract
|
import extract
|
||||||
|
|
||||||
|
def get_path(f, x): return f.path(x)
|
||||||
|
def get_data_path(f, x): return get_path(f, 'data.bin')
|
||||||
|
|
||||||
class File(models.Model):
|
class File(models.Model):
|
||||||
AV_INFO = (
|
AV_INFO = (
|
||||||
'duration', 'video', 'audio', 'oshash', 'size',
|
'duration', 'video', 'audio', 'oshash', 'size',
|
||||||
|
@ -89,7 +92,7 @@ class File(models.Model):
|
||||||
|
|
||||||
#upload and data handling
|
#upload and data handling
|
||||||
data = models.FileField(null=True, blank=True,
|
data = models.FileField(null=True, blank=True,
|
||||||
upload_to=lambda f, x: f.get_path('data.bin'))
|
upload_to=get_data_path)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return self.path
|
return self.path
|
||||||
|
@ -565,6 +568,9 @@ class Volume(models.Model):
|
||||||
'items': self.files.count()
|
'items': self.files.count()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def inttime():
|
||||||
|
return int(time.time())
|
||||||
|
|
||||||
class Instance(models.Model):
|
class Instance(models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -573,9 +579,9 @@ class Instance(models.Model):
|
||||||
created = models.DateTimeField(auto_now_add=True)
|
created = models.DateTimeField(auto_now_add=True)
|
||||||
modified = models.DateTimeField(auto_now=True)
|
modified = models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
atime = models.IntegerField(default=lambda: int(time.time()), editable=False)
|
atime = models.IntegerField(default=inttime, editable=False)
|
||||||
ctime = models.IntegerField(default=lambda: int(time.time()), editable=False)
|
ctime = models.IntegerField(default=inttime, editable=False)
|
||||||
mtime = models.IntegerField(default=lambda: int(time.time()), editable=False)
|
mtime = models.IntegerField(default=inttime, editable=False)
|
||||||
|
|
||||||
path = models.CharField(max_length=2048)
|
path = models.CharField(max_length=2048)
|
||||||
ignore = models.BooleanField(default=False)
|
ignore = models.BooleanField(default=False)
|
||||||
|
@ -641,7 +647,7 @@ class Stream(models.Model):
|
||||||
resolution = models.IntegerField(default=96)
|
resolution = models.IntegerField(default=96)
|
||||||
format = models.CharField(max_length=255, default='webm')
|
format = models.CharField(max_length=255, default='webm')
|
||||||
|
|
||||||
media = models.FileField(default=None, blank=True, upload_to=lambda f, x: f.path(x))
|
media = models.FileField(default=None, blank=True, upload_to=get_path)
|
||||||
source = models.ForeignKey('Stream', related_name='derivatives', default=None, null=True)
|
source = models.ForeignKey('Stream', related_name='derivatives', default=None, null=True)
|
||||||
available = models.BooleanField(default=False)
|
available = models.BooleanField(default=False)
|
||||||
oshash = models.CharField(max_length=16, null=True, db_index=True)
|
oshash = models.CharField(max_length=16, null=True, db_index=True)
|
||||||
|
|
|
@ -21,6 +21,7 @@ from archive.chunk import save_chunk
|
||||||
import managers
|
import managers
|
||||||
import utils
|
import utils
|
||||||
|
|
||||||
|
def get_path(f, x): return f.path(x)
|
||||||
|
|
||||||
class Document(models.Model):
|
class Document(models.Model):
|
||||||
|
|
||||||
|
@ -42,7 +43,7 @@ class Document(models.Model):
|
||||||
description = models.TextField(default="")
|
description = models.TextField(default="")
|
||||||
oshash = models.CharField(max_length=16, unique=True, null=True)
|
oshash = models.CharField(max_length=16, unique=True, null=True)
|
||||||
|
|
||||||
file = models.FileField(default=None, blank=True,null=True, upload_to=lambda f, x: f.path(x))
|
file = models.FileField(default=None, blank=True,null=True, upload_to=get_path)
|
||||||
|
|
||||||
objects = managers.DocumentManager()
|
objects = managers.DocumentManager()
|
||||||
uploading = models.BooleanField(default = False)
|
uploading = models.BooleanField(default = False)
|
||||||
|
|
|
@ -26,6 +26,9 @@ from archive import extract
|
||||||
|
|
||||||
import managers
|
import managers
|
||||||
|
|
||||||
|
def get_path(f, x): return f.path(x)
|
||||||
|
def get_icon_path(f, x): return get_path(f, 'icon.jpg')
|
||||||
|
|
||||||
class Edit(models.Model):
|
class Edit(models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -46,8 +49,7 @@ class Edit(models.Model):
|
||||||
query = DictField(default={"static": True})
|
query = DictField(default={"static": True})
|
||||||
type = models.CharField(max_length=255, default='static')
|
type = models.CharField(max_length=255, default='static')
|
||||||
|
|
||||||
icon = models.ImageField(default=None, blank=True, null=True,
|
icon = models.ImageField(default=None, blank=True, null=True, upload_to=get_icon_path)
|
||||||
upload_to=lambda i, x: i.path("icon.jpg"))
|
|
||||||
|
|
||||||
poster_frames = TupleField(default=[], editable=False)
|
poster_frames = TupleField(default=[], editable=False)
|
||||||
subscribed_users = models.ManyToManyField(User, related_name='subscribed_edits')
|
subscribed_users = models.ManyToManyField(User, related_name='subscribed_edits')
|
||||||
|
|
|
@ -144,6 +144,11 @@ def get_item(info, user=None, async=False):
|
||||||
tasks.update_poster.delay(item.public_id)
|
tasks.update_poster.delay(item.public_id)
|
||||||
return item
|
return item
|
||||||
|
|
||||||
|
def get_path(f, x): return f.path(x)
|
||||||
|
def get_icon_path(f, x): return get_path(f, 'icon.jpg')
|
||||||
|
def get_poster_path(f, x): return get_path(f, 'poster.jpg')
|
||||||
|
def get_torrent_path(f, x): return get_path(f, 'torrent.torrent')
|
||||||
|
|
||||||
class Item(models.Model):
|
class Item(models.Model):
|
||||||
created = models.DateTimeField(auto_now_add=True)
|
created = models.DateTimeField(auto_now_add=True)
|
||||||
modified = models.DateTimeField(auto_now=True)
|
modified = models.DateTimeField(auto_now=True)
|
||||||
|
@ -161,18 +166,15 @@ class Item(models.Model):
|
||||||
external_data = fields.DictField(default={}, editable=False)
|
external_data = fields.DictField(default={}, editable=False)
|
||||||
data = fields.DictField(default={}, editable=False)
|
data = fields.DictField(default={}, editable=False)
|
||||||
json = fields.DictField(default={}, editable=False)
|
json = fields.DictField(default={}, editable=False)
|
||||||
poster = models.ImageField(default=None, blank=True,
|
poster = models.ImageField(default=None, blank=True, upload_to=get_poster_path)
|
||||||
upload_to=lambda i, x: i.path("poster.jpg"))
|
|
||||||
poster_source = models.TextField(blank=True)
|
poster_source = models.TextField(blank=True)
|
||||||
poster_height = models.IntegerField(default=0)
|
poster_height = models.IntegerField(default=0)
|
||||||
poster_width = models.IntegerField(default=0)
|
poster_width = models.IntegerField(default=0)
|
||||||
poster_frame = models.FloatField(default=-1)
|
poster_frame = models.FloatField(default=-1)
|
||||||
|
|
||||||
icon = models.ImageField(default=None, blank=True,
|
icon = models.ImageField(default=None, blank=True, upload_to=get_icon_path)
|
||||||
upload_to=lambda i, x: i.path("icon.jpg"))
|
|
||||||
|
|
||||||
torrent = models.FileField(default=None, blank=True, max_length=1000,
|
torrent = models.FileField(default=None, blank=True, max_length=1000, upload_to=get_torrent_path)
|
||||||
upload_to=lambda i, x: i.path('torrent.torrent'))
|
|
||||||
stream_info = fields.DictField(default={}, editable=False)
|
stream_info = fields.DictField(default={}, editable=False)
|
||||||
|
|
||||||
#stream related fields
|
#stream related fields
|
||||||
|
|
|
@ -17,6 +17,11 @@ from ox.django.fields import DictField, TupleField
|
||||||
from archive import extract
|
from archive import extract
|
||||||
import managers
|
import managers
|
||||||
|
|
||||||
|
def get_path(f, x): return f.path(x)
|
||||||
|
def get_icon_path(f, x): return get_path(f, 'icon.jpg')
|
||||||
|
def get_listview(): return settings.CONFIG['user']['ui']['listView']
|
||||||
|
def get_listsort(): return tuple(settings.CONFIG['user']['ui']['listSort'])
|
||||||
|
|
||||||
class List(models.Model):
|
class List(models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -32,11 +37,10 @@ class List(models.Model):
|
||||||
type = models.CharField(max_length=255, default='static')
|
type = models.CharField(max_length=255, default='static')
|
||||||
description = models.TextField(default='')
|
description = models.TextField(default='')
|
||||||
|
|
||||||
icon = models.ImageField(default=None, blank=True,
|
icon = models.ImageField(default=None, blank=True, upload_to=get_icon_path)
|
||||||
upload_to=lambda i, x: i.path("icon.jpg"))
|
|
||||||
|
|
||||||
view = models.TextField(default=lambda: settings.CONFIG['user']['ui']['listView'])
|
view = models.TextField(default=get_listview)
|
||||||
sort = TupleField(default=lambda: tuple(settings.CONFIG['user']['ui']['listSort']), editable=False)
|
sort = TupleField(default=get_listsort, editable=False)
|
||||||
|
|
||||||
poster_frames = TupleField(default=[], editable=False)
|
poster_frames = TupleField(default=[], editable=False)
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,9 @@ from archive.chunk import save_chunk
|
||||||
import managers
|
import managers
|
||||||
|
|
||||||
|
|
||||||
|
def get_path(i, x): return i.path(x)
|
||||||
|
def get_icon_path(i, x): return get_path(i, 'icon.jpg')
|
||||||
|
|
||||||
class Text(models.Model):
|
class Text(models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -35,8 +38,7 @@ class Text(models.Model):
|
||||||
type = models.CharField(max_length=255, default='html')
|
type = models.CharField(max_length=255, default='html')
|
||||||
description = models.TextField(default='')
|
description = models.TextField(default='')
|
||||||
rightslevel = models.IntegerField(db_index=True, default=0)
|
rightslevel = models.IntegerField(db_index=True, default=0)
|
||||||
icon = models.ImageField(default=None, blank=True,
|
icon = models.ImageField(default=None, blank=True, upload_to=get_icon_path)
|
||||||
upload_to=lambda i, x: i.path("icon.jpg"))
|
|
||||||
|
|
||||||
text = models.TextField(default="")
|
text = models.TextField(default="")
|
||||||
embeds = TupleField(default=[], editable=True)
|
embeds = TupleField(default=[], editable=True)
|
||||||
|
@ -46,7 +48,7 @@ class Text(models.Model):
|
||||||
|
|
||||||
objects = managers.TextManager()
|
objects = managers.TextManager()
|
||||||
uploading = models.BooleanField(default = False)
|
uploading = models.BooleanField(default = False)
|
||||||
file = models.FileField(default=None, blank=True,null=True, upload_to=lambda f, x: f.path(x))
|
file = models.FileField(default=None, blank=True,null=True, upload_to=get_path)
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
self.rightslevel = min(self.rightslevel, len(settings.CONFIG['textRightsLevels']) - 1)
|
self.rightslevel = min(self.rightslevel, len(settings.CONFIG['textRightsLevels']) - 1)
|
||||||
|
|
Loading…
Reference in a new issue