コード例 #1
0
 def render(self, request, place, context, *args, **kwargs):
     section = get_section(request, context)
     if isinstance(section, MicroSite):
         microsite = section
         limit = self.get_config().get('limit').get_value()
         links = MicroSiteLink.objects.filter(
             microsite=microsite).visible_by_user(request.user)
         links = links[:limit]
         conf = {
             'background': self.get_config().get('background').get_value(),
             'link_color': self.get_config().get('link_color').get_value(),
             'over_color': self.get_config().get('over_color').get_value(),
         }
     else:
         microsite = None
         links = []
         conf = {}
     return self.render_block(
         request,
         template_name='microsite/blocks/highlight_menu.html',
         block_title=ugettext('Highlight menu'),
         context={
             'microsite': microsite,
             'links': links,
             'conf': conf
         })
コード例 #2
0
ファイル: decorators.py プロジェクト: teury/merengueproj
def is_owner_or_superuser(request):
    if not request.user.is_authenticated():
        return False
    if request.user.is_superuser:
        return True
    section = get_section(request)
    if section and request.user in section.owners.all():
        return True
    return False
コード例 #3
0
ファイル: blocks.py プロジェクト: djangozoom/merengue_plugins
 def render(self, request, place, context, *args, **kwargs):
     sections = BaseSection.objects.published()
     section = get_section(request, context)
     if not sections:
         return ''  # renders nothing
     return self.render_block(request, template_name='core/block_navigation.html',
                              block_title=ugettext('Navigation'),
                              context={'sections': sections,
                                       'active_section': section,
                                       'max_num_level': self.get_max_level()})
コード例 #4
0
def forum_index(request, extra_context=None):
    section = get_section(request, extra_context)
    forum_list = Forum.objects.published().order_by(
        transmeta.get_real_fieldname('category__name', get_language()),
        transmeta.get_real_fieldname('name', get_language()))
    forum_list = filtering_in_section(forum_list, section)
    return content_list(request,
                        forum_list,
                        template_name='forum/forum_list.html',
                        paginate_by=PAGINATE_BY)
コード例 #5
0
ファイル: views.py プロジェクト: creativify/merengueproj
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)
コード例 #6
0
def filebrowser_reverse(request, view_name, args=None, kwargs=None, url_prefix=None):
    #if 'path' in kwargs and not kwargs['path']:
        #del kwargs['path'] # this fixes an strange error with reverse resolving in some boxes
    section = get_section(request, None)
    if url_prefix is None:
        url = reverse(view_name, urlconf=None, args=args, kwargs=kwargs)
    else:
        repository_name = kwargs.pop('repository_name')
        url_path = reverse(view_name, urlconf='filebrowser.urls', args=args, kwargs=kwargs)
        url = u'%s%s' % (url_prefix, url_path)
    return section and section.url_in_section(url) or url
コード例 #7
0
ファイル: views.py プロジェクト: creativify/merengueproj
def repositories(request, extra_context=None):
    filters = {}
    section = get_section(request, extra_context)
    if section:
        filters['section'] = section
    repository_list = Repository.objects.filter(**filters)
    context = {'base_template': 'content_list.html'}
    extra_context = extra_context or {}
    context.update(extra_context)
    return content_list(request, repository_list,
                        extra_context=context,
                        template_name='filebrowser/repository_list.html')
コード例 #8
0
ファイル: views.py プロジェクト: teury/merengueproj
def repositories(request, extra_context=None):
    filters = {}
    section = get_section(request, extra_context)
    if section:
        filters['section'] = section
    repository_list = Repository.objects.filter(**filters)
    context = {'base_template': 'content_list.html'}
    extra_context = extra_context or {}
    context.update(extra_context)
    return content_list(request,
                        repository_list,
                        extra_context=context,
                        template_name='filebrowser/repository_list.html')
コード例 #9
0
ファイル: blocks.py プロジェクト: teury/merengueproj
 def render(self, request, place, context, *args, **kwargs):
     sections = BaseSection.objects.published()
     section = get_section(request, context)
     if not sections:
         return ''  # renders nothing
     return self.render_block(request,
                              template_name='core/block_navigation.html',
                              block_title=ugettext('Navigation'),
                              context={
                                  'sections': sections,
                                  'active_section': section,
                                  'max_num_level': self.get_max_level()
                              })
コード例 #10
0
ファイル: blocks.py プロジェクト: djangozoom/merengue_plugins
 def render(self, request, place, context, *args, **kwargs):
     section = get_section(request, context)
     if not section:
         return ''  # renders nothing
     main_menu = section.main_menu
     descendants = None
     if main_menu is not None:
         descendants = main_menu.get_descendants_by_user(request.user)
     if not section or not descendants:
         return ''  # renders nothing
     return self.render_block(request, template_name='core/block_menu.html',
                              block_title=ugettext('Menu'),
                              context={'section': section,
                                       'menu': main_menu,
                                       'descendants': descendants,
                                       'max_num_level': self.get_max_level()})
コード例 #11
0
def filebrowser_reverse(request,
                        view_name,
                        args=None,
                        kwargs=None,
                        url_prefix=None):
    #if 'path' in kwargs and not kwargs['path']:
    #del kwargs['path'] # this fixes an strange error with reverse resolving in some boxes
    section = get_section(request, None)
    if url_prefix is None:
        url = reverse(view_name, urlconf=None, args=args, kwargs=kwargs)
    else:
        repository_name = kwargs.pop('repository_name')
        url_path = reverse(view_name,
                           urlconf='filebrowser.urls',
                           args=args,
                           kwargs=kwargs)
        url = u'%s%s' % (url_prefix, url_path)
    return section and section.url_in_section(url) or url
コード例 #12
0
 def render(self, context):
     from django.core.urlresolvers import NoReverseMatch
     url_prefix = context.get('url_prefix', None)
     request = context.get('request', None)
     if not url_prefix:
         url = super(FileBrowserURLNode, self).render(context)
     else:
         args = [arg.resolve(context) for arg in self.args]
         kwargs = dict([(smart_str(k, 'ascii'), v.resolve(context))
                     for k, v in self.kwargs.items()])
         url = ''
         try:
             url = filebrowser_reverse(self.view_name, args=args, kwargs=kwargs, url_prefix=url_prefix)
         except NoReverseMatch:
             if self.asvar is None:
                 raise
     section = get_section(request, context)
     return section and section.url_in_section(url) or url
コード例 #13
0
ファイル: blocks.py プロジェクト: teury/merengueproj
 def render(self, request, place, context, *args, **kwargs):
     section = get_section(request, context)
     if not section:
         return ''  # renders nothing
     main_menu = section.main_menu
     descendants = None
     if main_menu is not None:
         descendants = main_menu.get_descendants_by_user(request.user)
     if not section or not descendants:
         return ''  # renders nothing
     return self.render_block(request,
                              template_name='core/block_menu.html',
                              block_title=ugettext('Menu'),
                              context={
                                  'section': section,
                                  'menu': main_menu,
                                  'descendants': descendants,
                                  'max_num_level': self.get_max_level(),
                                  'max_num_items': self.get_max_num_items()
                              })
コード例 #14
0
ファイル: blocks.py プロジェクト: creativify/merengueproj
 def render(self, request, place, context, *args, **kwargs):
     section = get_section(request, context)
     if isinstance(section, MicroSite):
         microsite = section
         limit = self.get_config().get('limit').get_value()
         links = MicroSiteLink.objects.filter(microsite=microsite).visible_by_user(request.user)
         links = links[:limit]
         conf = {
             'background': self.get_config().get('background').get_value(),
             'link_color': self.get_config().get('link_color').get_value(),
             'over_color': self.get_config().get('over_color').get_value(),
         }
     else:
         microsite = None
         links = []
         conf = {}
     return self.render_block(request, template_name='microsite/blocks/highlight_menu.html',
                              block_title=ugettext('Highlight menu'),
                              context={'microsite': microsite,
                                       'links': links,
                                       'conf': conf})
コード例 #15
0
 def render(self, context):
     from django.core.urlresolvers import NoReverseMatch
     url_prefix = context.get('url_prefix', None)
     request = context.get('request', None)
     if not url_prefix:
         url = super(FileBrowserURLNode, self).render(context)
     else:
         args = [arg.resolve(context) for arg in self.args]
         kwargs = dict([(smart_str(k, 'ascii'), v.resolve(context))
                        for k, v in self.kwargs.items()])
         url = ''
         try:
             url = filebrowser_reverse(self.view_name,
                                       args=args,
                                       kwargs=kwargs,
                                       url_prefix=url_prefix)
         except NoReverseMatch:
             if self.asvar is None:
                 raise
     section = get_section(request, context)
     return section and section.url_in_section(url) or url
コード例 #16
0
 def has_action(self, request, content):
     return super(GenerateSectionRSS, self).has_action(
         request, content) and get_section(request)
コード例 #17
0
ファイル: items.py プロジェクト: teury/merengueproj
 def _get_section(self, request, context):
     return get_section(request, context)
コード例 #18
0
ファイル: views.py プロジェクト: teury/merengueproj
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)
コード例 #19
0
ファイル: views.py プロジェクト: djangozoom/merengue_plugins
def forum_index(request, extra_context=None):
    section = get_section(request, extra_context)
    forum_list = Forum.objects.published()
    forum_list = filtering_in_section(forum_list, section)
    return content_list(request, forum_list, template_name='forum/forum_list.html', paginate_by=PAGINATE_BY)
コード例 #20
0
ファイル: items.py プロジェクト: creativify/merengueproj
 def _get_section(self, request, context):
     return get_section(request, context)
コード例 #21
0
ファイル: actions.py プロジェクト: creativify/merengueproj
 def has_action(self, request, content):
     return super(GenerateSectionRSS, self).has_action(request, content) and get_section(request)
コード例 #22
0
ファイル: views.py プロジェクト: creativify/merengueproj
def forum_index(request, extra_context=None):
    section = get_section(request, extra_context)
    forum_list = Forum.objects.published().order_by(transmeta.get_real_fieldname('category__name', get_language()),
                                                    transmeta.get_real_fieldname('name', get_language()))
    forum_list = filtering_in_section(forum_list, section)
    return content_list(request, forum_list, template_name='forum/forum_list.html', paginate_by=PAGINATE_BY)