diff libervia/pages/photos/new/page_meta.py @ 1278:4385a75e3962

pages (photos/new): photo album creation
author Goffi <goffi@goffi.org>
date Fri, 19 Jun 2020 16:47:50 +0200
parents
children 198605982d15
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libervia/pages/photos/new/page_meta.py	Fri Jun 19 16:47:50 2020 +0200
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+
+from libervia.server.constants import Const as C
+from twisted.internet import defer
+from sat.core.log import getLogger
+from sat.core.i18n import D_
+from sat.tools.common import date_utils, data_format
+
+"""creation of new events"""
+
+name = "photos_new"
+access = C.PAGES_ACCESS_PROFILE
+template = "photo/create.html"
+log = getLogger(__name__)
+
+
+async def on_data_post(self, request):
+    request_data = self.getRData(request)
+    profile = self.getProfile(request)
+    name = self.getPostedData(request, "name")
+    if profile is None:
+        self.pageError(request, C.HTTP_BAD_REQUEST)
+    fis_ns = self.host.ns_map["fis"]
+    http_upload_ns = self.host.ns_map["http_upload"]
+    entities_services, __, __ = await self.host.bridgeCall(
+        "discoFindByFeatures",
+        [fis_ns, http_upload_ns],
+        [],
+        False,
+        True,
+        False,
+        False,
+        False,
+        profile
+    )
+    try:
+        fis_service = next(iter(entities_services))
+    except StopIteration:
+       raise DataError(D_(
+           "You server has no service to create a photo album, please ask your server"
+           "administrator to add one"))
+
+    await self.host.bridgeCall(
+        "interestsRegisterFileSharing",
+        fis_service,
+        "photos",
+        f"photo-album:{name}",
+        "",
+        name,
+        "",
+        profile
+    )
+    log.info(f"album {name} created")
+    request_data["post_redirect_page"] = self.getPageByName("photos")
+    defer.returnValue(C.POST_NO_CONFIRM)