Mercurial > libervia-web
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)