Esempio n. 1
0
def _get_presentation(obj, request, objid):
    if obj:
        if not isinstance(obj, Presentation):
            return None
    else:
        obj = Presentation.get_by_id_for_request(objid, request)
        if not obj:
            return None
    return obj
Esempio n. 2
0
def _get_presentation(obj, request, objid):
    if obj:
        if not isinstance(obj, Presentation):
            return None
    else:
        obj = Presentation.get_by_id_for_request(objid, request)
        if not obj:
            return None
    return obj
Esempio n. 3
0
def raw_manifest(request, id, name, offline=False):
    p = Presentation.get_by_id_for_request(id, request)
    if not p:
        return dict(result='error')

    owner = request.user if request.user.is_authenticated() else None
    slides = p.items.select_related('record').filter(hidden=False)

    return {
        '@context':
        reverse(manifest, kwargs=dict(id=p.id, name=p.name)),
        '@type':
        'sc:Manifest',
        '@id':
        get_id(request, 'presentation', 'presentation%d' % p.id, 'manifest'),
        'label':
        p.title,
        'metadata': [],
        'description':
        p.description,
        'sequences': [{
            '@id':
            get_id(request, 'presentation', 'presentation%d' % p.id, 'all'),
            '@type':
            'sc:Range',
            'label':
            'All slides',
            'canvases': [
                slide_manifest(
                    request,
                    slide,
                    owner,
                    offline=offline,
                ) for slide in slides
            ] + [
                special_slide(
                    request,
                    kind='blank',
                    label='End of presentation',
                    offline=offline,
                )
            ]
        }],
    }