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' 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(): def suspend_public():
return __get_settings__().suspend_puplic return settings.SUSPEND_PUBLIC
def show_image(): def show_image():
return __get_settings__().show_image return settings.SHOW_IMAGE
def show_video(): def show_video():
return __get_settings__().show_video return settings.SHOW_VIDEO
def show_audio(): def show_audio():
return __get_settings__().show_audio return settings.SHOW_AUDIO
def show_other(): def show_other():
return __get_settings__().show_other return settings.SHOW_OTHER
def sort_by_date():
return settings.SORT_BY_DATE
def dict2args(d): def dict2args(d):

View File

@ -1,5 +1,5 @@
from django.contrib import admin 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): class ItemAdmin(admin.ModelAdmin):
@ -106,4 +106,3 @@ class TagAdmin(admin.ModelAdmin):
admin.site.register(Item, ItemAdmin) admin.site.register(Item, ItemAdmin)
admin.site.register(Tag, TagAdmin) 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 media
import os import os
import pygal import pygal
import subprocess
import time import time
DEBUG = False DEBUG = False
@ -306,11 +305,14 @@ class Item(models.Model):
return user in parent.modify_access.all() return user in parent.modify_access.all()
def sort_string(self): def sort_string(self):
try: if pygal.sort_by_date():
tm = int(self.item_data.datetime.strftime('%s')) try:
except AttributeError: tm = int(self.item_data.datetime.strftime('%s'))
raise AttributeError('Unable to create a sortstring for %s. Used datetime was: %s' % (str(self), repr(self.item_data.datetime))) except AttributeError:
return '%012d_%s' % (tm, os.path.basename(self.rel_path)) 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): def sorted_itemlist(self):
if self.type == TYPE_FOLDER: if self.type == TYPE_FOLDER:
@ -357,7 +359,7 @@ class Item(models.Model):
def current_settings(self): def current_settings(self):
if self.__current_settings__ is None: 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__ return self.__current_settings__
def __cache_update_needed__(self): def __cache_update_needed__(self):
@ -413,7 +415,7 @@ class Item(models.Model):
self.num_videos_c += 1 self.num_videos_c += 1
# sorted item list # sorted item list
sil.append(sub_item) 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) self.sil_c = json.dumps([i.rel_path for i in sil], indent=4)
# datetime # datetime
if len(sil) > 0: if len(sil) > 0:
@ -466,11 +468,3 @@ class Tag(models.Model):
"""the url to the Django admin interface for the model instance""" """the url to the Django admin interface for the model instance"""
info = (self._meta.app_label, self._meta.model_name) info = (self._meta.app_label, self._meta.model_name)
return reverse('admin:%s_%s_change' % info, args=(self.pk,)) 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)