Beispiel #1
0
def channel_view(request, channel_slug):
    channel = get_object_or_404(Channel, slug=channel_slug)
    now = datetime.now()
    videos = [schedule.video for schedule in channel.schedules.filter(broadcast_date__lte=now)
                             if now < schedule.broadcast_date + timedelta(seconds=3600*schedule.video.duration)]
    video = videos and videos[0] or channel.schedules.all() and channel.schedules.all()[0].video or None
    return content_view(request, channel, 'tv/channel_view.html', {'video': video,
                                                                    'channel': channel})
Beispiel #2
0
def forum_view(request, forum_slug, extra_context=None):
    forum = get_object_or_404(Forum, slug=forum_slug)
    extra_context = extra_context or {}
    context = {'thread_list': forum.thread_set.published(),
               'paginate_threads_by': PAGINATE_BY,
              }
    context.update(extra_context)
    return content_view(request, forum, extra_context=context)
Beispiel #3
0
def event_view(request, event_slug, extra_context=None, template_name='event_view.html'):
    event = get_object_or_404(Event, slug=event_slug)
    event_category_slug = request.GET.get('categories__slug', None)
    event_category = event_category_slug and get_object_or_404(Category, slug=event_category_slug)
    context = {'event_category': event_category}
    extra_context = extra_context or {}
    context.update(extra_context)
    return content_view(request, event, template_name, extra_context=context)
Beispiel #4
0
def content_section_view(request, section_slug, content_id, content_slug):
    section = get_object_or_404(BaseSection, slug=section_slug)
    try:
        content = section.related_content.get(pk=content_id).get_real_instance()
    except BaseContent.DoesNotExist:
        raise Http404
    template_name = getattr(content._meta, 'content_view_template')
    return content_view(request, content, template_name=template_name)
Beispiel #5
0
def merengue_section_view(request, section, template, extra_context):
    context = extra_context or {}
    main_content = section.main_content and section.main_content.get_real_instance() or None
    if not main_content:
        return section_view_without_maincontent(request, context, template)
    template_name = getattr(main_content._meta, 'content_view_template')
    context.update({'is_main_document_of_section': True})
    return content_view(request, main_content, template_name=template_name, extra_context=context)
Beispiel #6
0
def thread_view(request, forum_slug, thread_slug, original_context=None):
    thread = get_object_or_404(Thread, slug=thread_slug, forum__slug=forum_slug)
    is_moderated = request.user and (request.user.is_superuser or has_permission(thread.forum, request.user, 'moderate_forum'))
    is_auth = request.user and request.user.is_authenticated()
    comments = thread.forumthreadcomment_set.filter(parent__isnull=True).order_by('date_submitted')
    if not is_moderated:
        comments = comments.filter(banned=False)
    return content_view(request, thread, extra_context={'comments': comments,
                                                        'can_comment': not thread.closed and is_auth})
Beispiel #7
0
def link_index(request,
               extra_context=None,
               template_name='link/link_index.html'):
    link_collection = get_object_or_404(Collection, slug=LINK_COLLECTION_SLUG)
    extra_context = extra_context or {}
    return content_view(request,
                        link_collection,
                        extra_context=extra_context,
                        template_name=template_name)
Beispiel #8
0
def forum_view(request, forum_slug, extra_context=None):
    forum = get_object_or_404(Forum, slug=forum_slug)
    extra_context = extra_context or {}
    context = {
        'thread_list': forum.thread_set.published(),
        'paginate_threads_by': PAGINATE_BY,
    }
    context.update(extra_context)
    return content_view(request, forum, extra_context=context)
Beispiel #9
0
def content_section_view(request, section_slug, content_id, content_slug):
    section = get_object_or_404(BaseSection, slug=section_slug)
    try:
        content = section.related_content.get(
            pk=content_id).get_real_instance()
    except BaseContent.DoesNotExist:
        raise Http404
    template_name = getattr(content._meta, 'content_view_template')
    return content_view(request, content, template_name=template_name)
Beispiel #10
0
def menu_section_view(request, section_slug, menu_slug):
    menu = None
    if section_slug:
        section = get_object_or_404(BaseSection, slug=section_slug)
    else:
        section = get_section(request=request)
    if section:
        root_menu = section.main_menu
    else:
        root_menu = Menu.objects.get(slug=settings.MENU_PORTAL_SLUG)
    try:
        menu = root_menu.get_descendants_by_user(request.user).get(slug=menu_slug)
    except Menu.DoesNotExist:
        try:
            if not section_slug:
                # Other tree menu, different of menu portal slug
                try:
                    menu = Menu.tree.get(slug=menu_slug)
                except Menu.MultipleObjectsReturned:
                    menu = Menu.tree.filter(slug=menu_slug)[0]
                root_menu = menu.get_root()
            else:
                raise Http404
        except Menu.DoesNotExist:
            raise Http404

    try:
        link = menu.baselink.real_instance
    except BaseLink.DoesNotExist:
        can_edit = False
        if section:
            can_edit = section.can_edit(request.user)
        else:
            can_edit = menu.can_edit(request.user)
        return render_to_response('section/menu_link_not_exists.html',
            {'menu': menu, 'can_edit': can_edit}, context_instance=RequestContext(request))
    if isinstance(link, AbsoluteLink):
        url_redirect = link.get_absolute_url()
        if  url_redirect != request.get_full_path():
            return HttpResponseRedirect(url_redirect)
        raise Http404
    else:
        context = {}
        if section_slug:
            context['section'] = section.get_real_instance()
        context['menu'] = menu
        if isinstance(link, ViewletLink):
            context['registered_viewlet'] = link.viewlet
            context['base_template'] = 'base.html'
            return render_to_response('section/viewlet_section_view.html', context,
                                    context_instance=RequestContext(request))
        elif isinstance(link, ContentLink):
            content = link.content.get_real_instance()
            context['base_template'] = getattr(content._meta, 'content_view_template')
            return content_view(request, content, template_name='section/menu_section_view.html', extra_context=context)
Beispiel #11
0
def event_view(request,
               event_slug,
               extra_context=None,
               template_name='event_view.html'):
    event = get_object_or_404(Event, slug=event_slug)
    event_category_slug = request.GET.get('categories__slug', None)
    event_category = event_category_slug and get_object_or_404(
        Category, slug=event_category_slug)
    context = {'event_category': event_category}
    extra_context = extra_context or {}
    context.update(extra_context)
    return content_view(request, event, template_name, extra_context=context)
Beispiel #12
0
def merengue_section_view(request, section, template, extra_context):
    context = extra_context or {}
    main_content = section.main_content and section.main_content.get_real_instance(
    ) or None
    if not main_content:
        return section_view_without_maincontent(request, context, template)
    template_name = getattr(main_content._meta, 'content_view_template')
    context.update({'is_main_document_of_section': True})
    return content_view(request,
                        main_content,
                        template_name=template_name,
                        extra_context=context)
Beispiel #13
0
def channel_view(request, channel_slug):
    channel = get_object_or_404(Channel, slug=channel_slug)
    now = datetime.now()
    videos = [
        schedule.video
        for schedule in channel.schedules.filter(broadcast_date__lte=now)
        if now < schedule.broadcast_date +
        timedelta(seconds=3600 * schedule.video.duration)
    ]
    video = videos and videos[0] or channel.schedules.all(
    ) and channel.schedules.all()[0].video or None
    return content_view(request, channel, 'tv/channel_view.html', {
        'video': video,
        'channel': channel
    })
Beispiel #14
0
def thread_view(request, forum_slug, thread_slug, original_context=None):
    thread = get_object_or_404(Thread,
                               slug=thread_slug,
                               forum__slug=forum_slug)
    is_moderated = request.user and (
        request.user.is_superuser
        or has_permission(thread.forum, request.user, 'moderate_forum'))
    is_auth = request.user and request.user.is_authenticated()
    comments = thread.forumthreadcomment_set.filter(
        parent__isnull=True).order_by('date_submitted')
    if not is_moderated:
        comments = comments.filter(banned=False)
    return content_view(request,
                        thread,
                        extra_context={
                            'comments': comments,
                            'can_comment': not thread.closed and is_auth
                        })
Beispiel #15
0
def video_view(request, video_id):
    video = get_object_or_404(VideoStreaming, id=video_id)
    return content_view(request, video, 'tv/video_view.html')
Beispiel #16
0
def link_view(request, link_slug, template_name='link/link_view.html', extra_context=None):
    link = get_object_or_404(Link, slug=link_slug)
    return content_view(request, link, template_name, extra_context=None)
Beispiel #17
0
def document_section_view(request, section_slug, document_id, document_slug):
    document = get_object_or_404(Document, pk=document_id)
    template_name = getattr(document._meta, 'content_view_template')
    return content_view(request, document, template_name=template_name)
Beispiel #18
0
def banner_view(request, banner_slug):
    banner = get_object_or_404(Banner, slug=banner_slug)
    return content_view(request, banner, 'banner/banner_view.html')
Beispiel #19
0
def link_index(request, extra_context=None, template_name='link/link_index.html'):
    link_collection = get_object_or_404(Collection, slug=LINK_COLLECTION_SLUG)
    extra_context = extra_context or {}
    return content_view(request, link_collection, extra_context=extra_context, template_name=template_name)
Beispiel #20
0
def link_view(request,
              link_slug,
              template_name='link/link_view.html',
              extra_context=None):
    link = get_object_or_404(Link, slug=link_slug)
    return content_view(request, link, template_name, extra_context=None)
Beispiel #21
0
def banner_view(request, banner_slug):
    banner = get_object_or_404(Banner, slug=banner_slug)
    return content_view(request, banner, 'banner/banner_view.html')
Beispiel #22
0
def newsitem_view(request, newsitem_slug, extra_context=None):
    newsitem = get_object_or_404(NewsItem, slug=newsitem_slug)
    return content_view(request,
                        newsitem,
                        'news/newsitem_view.html',
                        extra_context=extra_context)
Beispiel #23
0
def video_view(request, video_id):
    video = get_object_or_404(VideoStreaming, id=video_id)
    return content_view(request, video, 'tv/video_view.html')
Beispiel #24
0
def document_section_view(request, section_slug, document_id, document_slug):
    document = get_object_or_404(Document, pk=document_id)
    template_name = getattr(document._meta, 'content_view_template')
    return content_view(request, document, template_name=template_name)
Beispiel #25
0
def menu_section_view(request, section_slug, menu_slug):
    menu = None
    if section_slug:
        section = get_object_or_404(BaseSection, slug=section_slug)
    else:
        section = get_section(request=request)
    if section:
        root_menu = section.main_menu
    else:
        root_menu = Menu.objects.get(slug=settings.MENU_PORTAL_SLUG)
    try:
        menu = root_menu.get_descendants_by_user(
            request.user).get(slug=menu_slug)
    except Menu.DoesNotExist:
        try:
            if not section_slug:
                # Other tree menu, different of menu portal slug
                try:
                    menu = Menu.tree.get(slug=menu_slug)
                except Menu.MultipleObjectsReturned:
                    menu = Menu.tree.filter(slug=menu_slug)[0]
                root_menu = menu.get_root()
            else:
                raise Http404
        except Menu.DoesNotExist:
            raise Http404

    try:
        link = menu.baselink.real_instance
    except BaseLink.DoesNotExist:
        can_edit = False
        if section:
            can_edit = section.can_edit(request.user)
        else:
            can_edit = menu.can_edit(request.user)
        return render_to_response('section/menu_link_not_exists.html', {
            'menu': menu,
            'can_edit': can_edit
        },
                                  context_instance=RequestContext(request))
    if isinstance(link, AbsoluteLink):
        url_redirect = link.get_absolute_url()
        if url_redirect != request.get_full_path():
            return HttpResponseRedirect(url_redirect)
        raise Http404
    else:
        context = {}
        if section_slug:
            context['section'] = section.get_real_instance()
        context['menu'] = menu
        if isinstance(link, ViewletLink):
            context['registered_viewlet'] = link.viewlet
            context['base_template'] = 'base.html'
            return render_to_response('section/viewlet_section_view.html',
                                      context,
                                      context_instance=RequestContext(request))
        elif isinstance(link, ContentLink):
            content = link.content.get_real_instance()
            context['base_template'] = getattr(content._meta,
                                               'content_view_template')
            return content_view(request,
                                content,
                                template_name='section/menu_section_view.html',
                                extra_context=context)
Beispiel #26
0
def newsitem_view(request, newsitem_slug, extra_context=None):
    newsitem = get_object_or_404(NewsItem, slug=newsitem_slug)
    return content_view(request, newsitem, 'news/newsitem_view.html', extra_context=extra_context)