view libervia/pages/photos/new/page_meta.py @ 1346:cda5537c71d6

browser (photos/album): videos integrations: videos can now be added to an album, the alternative media player is then used to display them. Slides options are used to remove pagination and slidebar from slideshow (they don't play well with media player), and video are reset when its slide is exited.
author Goffi <goffi@goffi.org>
date Tue, 25 Aug 2020 08:31:56 +0200
parents 3a1cb3c5702f
children 39719ff4fcad
line wrap: on
line source

#!/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.core import exceptions

"""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").replace('/', '_')
    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 exceptions.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"/albums/{name}",
        name,
        "",
        profile
    )
    log.info(f"album {name} created")
    request_data["post_redirect_page"] = self.getPageByName("photos")
    defer.returnValue(C.POST_NO_CONFIRM)