Esempio n. 1
0
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))
Esempio n. 3
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_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]
Esempio n. 5
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
            }
        )