Configuration moved to config.py, Sort option by name added

This commit is contained in:
Dirk Alders 2020-01-31 10:48:16 +01:00
parent 983fa59231
commit 9da7e60a13
4 changed files with 36 additions and 33 deletions

View File

@ -25,34 +25,28 @@ DATA_TYPE_ITEM = 'item'
DATA_TYPE_SEARCH = 'search'
def __get_settings__():
from .models import Setting
try:
s = Setting.objects.get(id=1)
except Setting.DoesNotExist:
s = Setting(id=1)
s.save()
return s
def suspend_public():
return __get_settings__().suspend_puplic
return settings.SUSPEND_PUBLIC
def show_image():
return __get_settings__().show_image
return settings.SHOW_IMAGE
def show_video():
return __get_settings__().show_video
return settings.SHOW_VIDEO
def show_audio():
return __get_settings__().show_audio
return settings.SHOW_AUDIO
def show_other():
return __get_settings__().show_other
return settings.SHOW_OTHER
def sort_by_date():
return settings.SORT_BY_DATE
def dict2args(d):

View File

@ -1,5 +1,5 @@
from django.contrib import admin
from .models import Item, Tag, Setting, TYPE_AUDIO, TYPE_FOLDER, TYPE_IMAGE, TYPE_VIDEO
from .models import Item, Tag, TYPE_AUDIO, TYPE_FOLDER, TYPE_IMAGE, TYPE_VIDEO
class ItemAdmin(admin.ModelAdmin):
@ -106,4 +106,3 @@ class TagAdmin(admin.ModelAdmin):
admin.site.register(Item, ItemAdmin)
admin.site.register(Tag, TagAdmin)
admin.site.register(Setting)

View File

@ -0,0 +1,16 @@
# Generated by Django 2.2.9 on 2020-01-31 09:37
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('pygal', '0003_auto_20200130_2203'),
]
operations = [
migrations.DeleteModel(
name='Setting',
),
]

View File

@ -9,7 +9,6 @@ import logging
import media
import os
import pygal
import subprocess
import time
DEBUG = False
@ -306,11 +305,14 @@ class Item(models.Model):
return user in parent.modify_access.all()
def sort_string(self):
try:
tm = int(self.item_data.datetime.strftime('%s'))
except AttributeError:
raise AttributeError('Unable to create a sortstring for %s. Used datetime was: %s' % (str(self), repr(self.item_data.datetime)))
return '%012d_%s' % (tm, os.path.basename(self.rel_path))
if pygal.sort_by_date():
try:
tm = int(self.item_data.datetime.strftime('%s'))
except AttributeError:
raise AttributeError('Unable to create a sortstring for %s. Used datetime was: %s' % (str(self), repr(self.item_data.datetime)))
return '%012d_%s' % (tm, os.path.basename(self.rel_path))
else:
return self.rel_path
def sorted_itemlist(self):
if self.type == TYPE_FOLDER:
@ -357,7 +359,7 @@ class Item(models.Model):
def current_settings(self):
if self.__current_settings__ is None:
self.__current_settings__ = pygal.show_audio() * 1 + pygal.show_image() * 2 + pygal.show_other() * 3 + pygal.show_video() * 4
self.__current_settings__ = pygal.show_audio() * 1 + pygal.show_image() * 2 + pygal.show_other() * 4 + pygal.show_video() * 8 + pygal.sort_by_date() * 16
return self.__current_settings__
def __cache_update_needed__(self):
@ -413,7 +415,7 @@ class Item(models.Model):
self.num_videos_c += 1
# sorted item list
sil.append(sub_item)
sil.sort(key=lambda entry: entry.sort_string(), reverse=True)
sil.sort(key=lambda entry: entry.sort_string(), reverse=pygal.sort_by_date())
self.sil_c = json.dumps([i.rel_path for i in sil], indent=4)
# datetime
if len(sil) > 0:
@ -466,11 +468,3 @@ class Tag(models.Model):
"""the url to the Django admin interface for the model instance"""
info = (self._meta.app_label, self._meta.model_name)
return reverse('admin:%s_%s_change' % info, args=(self.pk,))
class Setting(models.Model):
suspend_puplic = models.BooleanField(default=True)
show_image = models.BooleanField(default=True)
show_video = models.BooleanField(default=True)
show_audio = models.BooleanField(default=False)
show_other = models.BooleanField(default=False)