From 71fa095663c7834f1f0b37a9405731c793a64e75 Mon Sep 17 00:00:00 2001 From: Simon Caminada Date: Mon, 17 Jun 2024 13:51:33 +0200 Subject: [PATCH] fix: update filer media archive --- src/project/urls.py | 3 ++- src/project/views.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/project/urls.py b/src/project/urls.py index 0c7680a..54f4c4f 100644 --- a/src/project/urls.py +++ b/src/project/urls.py @@ -3,7 +3,7 @@ from django.conf.urls import url, include from django.utils.translation import ugettext_lazy as _ from django.views.generic.base import TemplateView -from project.views import SearchView, NewsletterSubscriptionView, LoginRedirectView, MediaRedirectView +from project.views import SearchView, NewsletterSubscriptionView, LoginRedirectView, MediaRedirectView, ArchiveFilerPublic urlpatterns = [ url(_(r'^suche/'), SearchView.as_view(), kwargs={'search': True}, name='search'), @@ -13,4 +13,5 @@ urlpatterns = [ name='newsletter_subscription_success'), url(r'^login/redirect/$', LoginRedirectView.as_view(), name='login_redirect'), url(r'^media/bridge/$', MediaRedirectView.as_view(), name='media_bridge'), + url(r'^media/archive/$', ArchiveFilerPublic.as_view(), name='media_archive'), ] diff --git a/src/project/views.py b/src/project/views.py index 5596fe2..5347021 100644 --- a/src/project/views.py +++ b/src/project/views.py @@ -2,6 +2,7 @@ from aldryn_search.views import AldrynSearchView from cms.models import Page from django.core.urlresolvers import reverse_lazy +from django.views import View from django.views.generic import RedirectView from django.views.generic.edit import FormView from aldryn_forms.admin.views import FormExportWizardView @@ -9,6 +10,8 @@ from aldryn_forms.admin.exporter import Exporter from tablib import Dataset from django.http import HttpResponse from project.forms import NewsletterSubscriptionForm +import os +import zipfile class SearchView(AldrynSearchView): @@ -102,3 +105,14 @@ class CustomFormExportWizardView(FormExportWizardView): response = HttpResponse(dataset.xls, content_type=content_type) response['Content-Disposition'] = 'attachment; filename=%s' % filename return response + + +class ArchiveFilerPublic(View): + + def get(self, request): + with zipfile.ZipFile('filer_public.zip', 'w', zipfile.ZIP_DEFLATED) as zipf: + for root, dirs, files in os.walk('/var/www/tagesschule/docker/storage/filer_public/'): + for file in files: + ziph.write(os.path.join(root, file), os.path.relpath(os.path.join(root, file), os.path.join(path, '..'))) + return HttpResponse('success') +