This commit is contained in:
vabene1111 2018-05-06 21:33:24 +02:00
parent bc287364ac
commit 4be125353f
6 changed files with 45 additions and 12 deletions

View File

@ -12,7 +12,11 @@ def sync_all():
monitors = Monitor.objects.all()
for monitor in monitors:
import_all(monitor)
ret = import_all(monitor)
if not ret:
return ret
return True
def import_all(monitor):

View File

@ -41,13 +41,23 @@ class KeywordTable(tables.Table):
fields = ('id', 'name')
class ImportLogTable(tables.Table):
monitor_id = tables.LinkColumn('edit_monitor', args=[A('monitor_id')])
class Meta:
model = ImportLog
template_name = 'generic/table_template.html'
fields = ('status', 'msg', 'monitor_id', 'created_at')
class MonitoredPathTable(tables.Table):
id = tables.LinkColumn('edit_monitor', args=[A('id')])
delete = tables.TemplateColumn("<a href='{% url 'delete_monitor' record.id %}' >" + _('Delete') + "</a>")
class Meta:
model = Monitor
template_name = 'generic/table_template.html'
fields = ('path', 'last_checked')
fields = ('id', 'path', 'last_checked')
class NewRecipeTable(tables.Table):
@ -56,4 +66,4 @@ class NewRecipeTable(tables.Table):
class Meta:
model = NewRecipe
template_name = 'generic/table_template.html'
fields = ('name','path')
fields = ('id', 'name', 'path')

View File

@ -71,6 +71,8 @@
class="fas fa-archive"></i> {% trans 'Category' %}</a>
<a class="dropdown-item" href="{% url 'list_keyword' %}"><i
class="fas fa-tags"></i> {% trans 'Keyword' %}</a>
<a class="dropdown-item" href="{% url 'list_import_log' %}"><i
class="fas fa-history"></i> {% trans 'Import Log' %}</a>
</div>
</li>
<li class="nav-item dropdown">

View File

@ -12,8 +12,9 @@ urlpatterns = [
path('new/category', new.CategoryCreate.as_view(), name='new_category'),
path('new/keyword', new.KeywordCreate.as_view(), name='new_keyword'),
path('list/keyword', lists.keyword_list, name='list_keyword'),
path('list/category', lists.category_list, name='list_category'),
path('list/keyword', lists.keyword, name='list_keyword'),
path('list/category', lists.category, name='list_category'),
path('list/import', lists.import_log, name='list_import_log'),
path('edit/recipe/<int:pk>/', edit.RecipeUpdate.as_view(), name='edit_recipe'),
path('edit/keyword/<int:pk>/', edit.KeywordUpdate.as_view(), name='edit_keyword'),

View File

@ -1,6 +1,8 @@
from django.contrib import messages
from django.http import HttpResponse
from django.utils.translation import gettext as _
from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect
from cookbook.models import Recipe
from cookbook.helper import dropbox
@ -19,5 +21,10 @@ def get_file_link(request, recipe_id):
@login_required
def dropbox_sync(request):
dropbox.sync_all()
return HttpResponse("Import Successful ... or not ? WIP")
ret = dropbox.sync_all()
if ret:
messages.add_message(request, messages.SUCCESS, _('Sync successful!'))
return redirect('batch_import')
else:
messages.add_message(request, messages.ERROR, _('Error synchronizing with Storage'))
return redirect('batch_monitor')

View File

@ -1,14 +1,15 @@
from django.contrib.auth.decorators import login_required
from django.db.models.functions import Lower
from django.shortcuts import render
from django_tables2 import RequestConfig
from django.utils.translation import gettext as _
from cookbook.models import Category, Keyword
from cookbook.tables import CategoryTable, KeywordTable
from cookbook.models import Category, Keyword, ImportLog
from cookbook.tables import CategoryTable, KeywordTable, ImportLogTable
@login_required
def category_list(request):
def category(request):
table = CategoryTable(Category.objects.all())
RequestConfig(request, paginate={'per_page': 25}).configure(table)
@ -16,8 +17,16 @@ def category_list(request):
@login_required
def keyword_list(request):
def keyword(request):
table = KeywordTable(Keyword.objects.all())
RequestConfig(request, paginate={'per_page': 25}).configure(table)
return render(request, 'generic/list_template.html', {'title': _("Keyword"), 'table': table})
@login_required
def import_log(request):
table = ImportLogTable(ImportLog.objects.all().order_by(Lower('created_at').desc()))
RequestConfig(request, paginate={'per_page': 25}).configure(table)
return render(request, 'generic/list_template.html', {'title': _("Import Log"), 'table': table})