def index(request): snippet_types = [ (get_snippet_type_name(content_type)[1], get_snippet_type_description(content_type), content_type) for content_type in get_snippet_content_types() if user_can_edit_snippet_type(request.user, content_type) ] return render(request, "wagtailsnippets/snippets/index.html", {"snippet_types": snippet_types})
def editor_js(): content_types = [] for content_type in get_snippet_content_types(): verbose_name = content_type.model_class()._meta.verbose_name verbose_name = verbose_name[0:1].upper() + verbose_name[1:] content_types.append({ 'app_label': content_type.model_class()._meta.app_label, 'model_name': content_type.model_class()._meta.model_name, 'label': verbose_name }) return format_html( """ <script src="{0}{1}"></script> <script>window.chooserUrls.snippetChooser = '{2}';</script> """, settings.STATIC_URL, 'wagtailsnippets/js/snippet-chooser.js', urlresolvers.reverse('wagtailsnippets_choose_generic')) + """ <script src="{0}{1}"></script> <script> registerHalloPlugin('hallowagtailsnippets', {{ 'content_types': {2} }}); </script> """.format( settings.STATIC_URL, 'wagtailsnippets/js/hallo-plugins/hallo-wagtailsnippets.js', json.dumps(content_types))
def index(request): snippet_types = [(get_snippet_type_name(content_type)[1], content_type) for content_type in get_snippet_content_types() if user_can_edit_snippet_type(request.user, content_type)] return render( request, 'wagtailsnippets/snippets/index.html', { 'snippet_types': sorted(snippet_types, key=lambda x: x[0].lower()), })
def index(request): snippet_types = [(get_snippet_type_name(content_type)[1], get_snippet_type_description(content_type), content_type) for content_type in get_snippet_content_types() if user_can_edit_snippet_type(request.user, content_type)] return render(request, 'wagtailsnippets/snippets/index.html', { 'snippet_types': snippet_types, })
def index(request): snippet_types = [ (get_snippet_type_name(content_type)[1], content_type) for content_type in get_snippet_content_types() if user_can_edit_snippet_type(request.user, content_type) ] return render( request, "wagtailsnippets/snippets/index.html", {"snippet_types": sorted(snippet_types, key=lambda x: x[0].lower())}, )
def index(request): snippet_types = [ ( get_snippet_type_name(content_type)[1], get_snippet_type_description(content_type), content_type ) for content_type in get_snippet_content_types() if user_can_edit_snippet_type(request.user, content_type) ] return render(request, 'wagtailsnippets/snippets/index.html', { 'snippet_types': sorted(snippet_types, key=lambda x: x[0].lower()), })
def index(request): snippet_types = [ (get_snippet_type_name(content_type)[1], '', content_type) for content_type in get_snippet_content_types() if user_can_edit_snippet_type(request.user, content_type) and hasattr(content_type.model_class()._meta, 'embedder_snippet') and content_type.model_class()._meta.embedder_snippet ] return render_modal_workflow(request, 'wagtailembedder/snippets/types_list.html', 'wagtailembedder/snippets/types_list.js', { 'snippet_types': snippet_types, })
def index(request, template='wagtailsnippets/snippets/index.html'): snippet_types = [ ( get_snippet_type_name(content_type)[1], get_snippet_type_description(content_type), content_type ) for content_type in get_snippet_content_types() if user_can_edit_snippet_type(request.user, content_type) ] return render(request, template, { 'snippet_types': snippet_types, })
def get_content_type_from_url_params(app_name, model_name): """ retrieve a content type from an app_name / model_name combo. Throw Http404 if not a valid snippet type """ try: content_type = ContentType.objects.get_by_natural_key(app_name, model_name) except ContentType.DoesNotExist: raise Http404 if content_type not in get_snippet_content_types(): # don't allow people to hack the URL to edit content types that aren't registered as snippets raise Http404 return content_type
def user_can_edit_snippets(user): """ true if user has any permission related to any content type registered as a snippet type """ snippet_content_types = get_snippet_content_types() if user.is_active and user.is_superuser: # admin can edit snippets iff any snippet types exist return bool(snippet_content_types) permissions = Permission.objects.filter(content_type__in=snippet_content_types).select_related('content_type') for perm in permissions: permission_name = "%s.%s" % (perm.content_type.app_label, perm.codename) if user.has_perm(permission_name): return True return False
def index(request): snippet_types = [( get_snippet_type_name(content_type)[1], '', content_type) for content_type in get_snippet_content_types() if user_can_edit_snippet_type(request.user, content_type) and hasattr(content_type.model_class()._meta, 'embedder_snippet') and content_type.model_class()._meta.embedder_snippet ] return render_modal_workflow( request, 'wagtailembedder/snippets/types_list.html', 'wagtailembedder/snippets/types_list.js', { 'snippet_types': snippet_types, } )
def register_snippets_menu_item(): menu_items = [] i = 0 for content_type in get_snippet_content_types(): verbose_name = content_type.model_class()._meta.verbose_name verbose_name = verbose_name[0:1].upper() + verbose_name[1:] menu_items.append( SnippetsMenuItem(verbose_name, urlresolvers.reverse('wagtailsnippets_list', args=[ content_type.app_label, content_type.model ]), classnames='icon icon-snippet icon-snippet-' + content_type.model, order=500 - i)) i += 1 return menu_items
def index_objects(request, content_type_app_name, content_type_model_name): snippet_types = get_snippet_content_types() for content_type in snippet_types: if content_type.model.lower().replace(" ", "") == content_type_model_name: model = content_type.model_class() items = model.objects.all() snippet_type_name, snippet_type_name_plural = get_snippet_type_name( content_type) return render_modal_workflow( request, 'wagtailembedder/snippets/type_index.html', 'wagtailembedder/snippets/type_index.js', { 'content_type': content_type, 'snippet_type_name': snippet_type_name, 'snippet_type_name_plural': snippet_type_name_plural, 'items': items, }) raise ObjectDoesNotExist
def index_objects(request, content_type_app_name, content_type_model_name): snippet_types = get_snippet_content_types() for content_type in snippet_types: if content_type.model.lower().replace(" ", "") == content_type_model_name: model = content_type.model_class() items = model.objects.all() snippet_type_name, snippet_type_name_plural = get_snippet_type_name(content_type) return render_modal_workflow( request, 'wagtailembedder/snippets/type_index.html', 'wagtailembedder/snippets/type_index.js', { 'content_type': content_type, 'snippet_type_name': snippet_type_name, 'snippet_type_name_plural': snippet_type_name_plural, 'items': items, } ) raise ObjectDoesNotExist
def register_permissions(): snippet_content_types = get_snippet_content_types() snippet_permissions = Permission.objects.filter( content_type__in=snippet_content_types) return snippet_permissions
def register_permissions(): snippet_content_types = get_snippet_content_types() snippet_permissions = Permission.objects.filter(content_type__in=snippet_content_types) return snippet_permissions