def render_if_condition_met(request, condition, objtype, iid, model_slug=None, name_slug=None, subpage=None): item = get_object_or_404(objtype, pk=iid).item if item._meta.model_name != model_slug or not slugify(item.name).startswith(str(name_slug)): return redirect(url_slugify_concept(item)) if not condition(request.user, item): if request.user.is_anonymous(): return redirect(reverse('friendly_login') + '?next=%s' % request.path) else: raise PermissionDenied # We add a user_can_edit flag in addition to others as we have odd rules around who can edit objects. isFavourite = request.user.is_authenticated() and request.user.profile.is_favourite(item) last_edit = default_revision_manager.get_for_object_reference( item.__class__, item.pk, ).first() default_template = "%s/concepts/%s.html" % (item.__class__._meta.app_label, item.__class__._meta.model_name) template = select_template([default_template, item.template]) context = RequestContext( request, { 'item': item, # 'view': request.GET.get('view', '').lower(), 'isFavourite': isFavourite, 'last_edit': last_edit } ) return HttpResponse(template.render(context))
def render_if_condition_met(request,condition,objtype,iid,model_slug=None,name_slug=None,subpage=None): item = get_object_or_404(objtype,pk=iid).item if item._meta.model_name != model_slug or not slugify(item.name).startswith(str(name_slug)): return redirect(url_slugify_concept(item)) if not condition(request.user, item): if request.user.is_anonymous(): return redirect(reverse('django.contrib.auth.views.login')+'?next=%s' % request.path) else: raise PermissionDenied # We add a user_can_edit flag in addition to others as we have odd rules around who can edit objects. isFavourite = request.user.is_authenticated () and request.user.profile.is_favourite(item) last_edit = default_revision_manager.get_for_object_reference( item.__class__, item.pk, ).first() default_template = "%s/concepts/%s.html"%(item.__class__._meta.app_label,item.__class__._meta.model_name) template = select_template([default_template,item.template]) context = RequestContext(request, {'item':item, #'view':request.GET.get('view','').lower(), 'isFavourite': isFavourite, 'last_edit': last_edit } ) return HttpResponse(template.render(context))
def get_deleted_object(self, model_class, object_id, select_related=None): """ Returns the version corresponding to the deletion of the object with the given id. This method was deprecated in django-reversion 1.5, and will be removed in django-reversion 1.7. New applications should use reversion.get_for_date()[0]. """ from reversion.revisions import default_revision_manager return default_revision_manager.get_for_object_reference(model_class, object_id)[0]
def get_deleted_object(self, model_class, object_id, select_related=None): """ Returns the version corresponding to the deletion of the object with the given id. This method was deprecated in django-reversion 1.5, and will be removed in django-reversion 1.7. New applications should use reversion.get_for_date()[0]. """ from reversion.revisions import default_revision_manager return default_revision_manager.get_for_object_reference(model_class, object_id)[0]
def get_for_object_reference(self, model, object_id): """ Returns all versions for the given object reference. This method was deprecated in django-reversion 1.5, and will be removed in django-reversion 1.7. New applications should use reversion.get_for_object_reference(). The new version of this method returns results ordered with the most recent versions first. This legacy version of the method continues to return the results ordered with the oldest versions first. """ from reversion.revisions import default_revision_manager return default_revision_manager.get_for_object_reference(model, object_id).order_by("pk")
def get_for_object_reference(self, model, object_id): """ Returns all versions for the given object reference. This method was deprecated in django-reversion 1.5, and will be removed in django-reversion 1.7. New applications should use reversion.get_for_object_reference(). The new version of this method returns results ordered with the most recent versions first. This legacy version of the method continues to return the results ordered with the oldest versions first. """ from reversion.revisions import default_revision_manager return default_revision_manager.get_for_object_reference(model, object_id).order_by("pk")
def render_if_condition_met(condition,objtype,request,iid=None,subpage=None): if iid is None: app_name = objtype._meta.app_label return redirect(reverse("%s:dynamic"%app_name,args=["".join(objtype._meta.verbose_name.title().lower().split())])) item = get_object_or_404(objtype,pk=iid).item if not condition(request.user, item): if request.user.is_anonymous(): return redirect('/accounts/login?next=%s' % request.path) else: raise PermissionDenied # We add a user_can_edit flag in addition to others as we have odd rules around who can edit objects. isFavourite = request.user.is_authenticated () and request.user.profile.isFavourite(item.id) """ if subpage=="related": from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger related_items = item.relatedItems(request.user) paginator = Paginator(related_items, PAGES_PER_RELATED_ITEM) page = request.GET.get('page') try: related_items = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. related_items = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. related_items = paginator.page(paginator.num_pages) return render(request,"aristotle_mdr/relatedItems.html", {'item':item, 'relatedItems':related_items,} ) else: Lets disable the related page for the time being Only a handful of Object classes will be impacted. """ from reversion.revisions import default_revision_manager last_edit = default_revision_manager.get_for_object_reference( item.__class__, item.pk, ).first() return render(request,item.template, {'item':item, 'user_can_edit':user_can_edit(request.user,item), 'view':request.GET.get('view','').lower(), 'isFavourite': isFavourite, 'last_edit': last_edit } )