Mercurial > libervia-web
view libervia/web/pages/photos/new/page_meta.py @ 1545:be20e6ac9f22
browser (bridge): add methods/properties to wait for Websocket/BroadcastChannel to be ready
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 06 Jul 2023 12:10:25 +0200 |
parents | eb00d593801d |
children |
line wrap: on
line source
#!/usr/bin/env python3 from libervia.web.server.constants import Const as C from twisted.internet import defer from libervia.backend.core.log import getLogger from libervia.backend.core.i18n import D_ from libervia.backend.core import exceptions from libervia.frontends.bridge.bridge_frontend import BridgeException """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.get_r_data(request) profile = self.get_profile(request) name = self.get_posted_data(request, "name").replace('/', '_') albums_path = "/albums" album_path = f"{albums_path}/{name}" if profile is None: self.page_error(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.bridge_call( "disco_find_by_features", [fis_ns, http_upload_ns], [], False, True, False, False, False, profile ) try: fis_service = next(iter(entities_services)) except StopIteration: raise exceptions.DataError(D_( "You server has no service to create a photo album, please ask your server " "administrator to add one")) try: await self.host.bridge_call( "fis_create_dir", fis_service, "", albums_path, {"access_model": "open"}, profile ) except BridgeException as e: if e.condition == 'conflict': pass else: log.error(f"Can't create {albums_path} path: {e}") raise e try: await self.host.bridge_call( "fis_create_dir", fis_service, "", album_path, {"access_model": "whitelist"}, profile ) except BridgeException as e: if e.condition == 'conflict': pass else: log.error(f"Can't create {album_path} path: {e}") raise e await self.host.bridge_call( "interests_file_sharing_register", fis_service, "photos", "", album_path, name, "", profile ) log.info(f"album {name} created") request_data["post_redirect_page"] = self.get_page_by_name("photos") defer.returnValue(C.POST_NO_CONFIRM)