예제 #1
0
def edit_resource(request,
                  group,
                  resource_name,
                  template_name='plus_resources/upload.html',
                  success_url=None,
                  current_app="plus_groups",
                  **kwargs):

    if not group:
        raise Http404(_('This group does not exist'))

    try:
        secure_upload = Resource.objects.plus_get(request.user,
                                                  name=resource_name,
                                                  in_agent=group.get_ref())
    except Resource.DoesNotExist:
        raise Http404

    if secure_upload.name:
        old_name = secure_upload.name
    else:
        old_name = ''

    try:
        secure_upload.get_all_sliders
        perms_bool = True
    except PlusPermissionsNoAccessException:
        perms_bool = False

    if request.POST:
        post_kwargs = request.POST.copy()
        post_kwargs['obj'] = secure_upload

        if "delete_submit" in post_kwargs:
            if post_kwargs.has_key('delete_check'):
                secure_upload.delete()
                return HttpResponseRedirect(
                    reverse(current_app + ':group', args=[group.id]))

        if "move_resource_submit" in post_kwargs:
            form = MoveResourceForm(post_kwargs)
            form.user = request.user  # essential, user is checked inside form validation
            if form.is_valid():
                new_parent_group = form.cleaned_data['new_parent_group']
                try:
                    secure_upload.move_to_new_group(new_parent_group)
                except Exception, e:
                    print e

                return HttpResponseRedirect(
                    reverse(current_app + ':group',
                            args=[form.cleaned_data['new_parent_group'].id]))

        form = UploadFileForm(post_kwargs, request.FILES, user=request.user)

        if form.is_valid():
            a_file = form.cleaned_data['resource']

            resource = update_attributes(
                secure_upload,
                request.user,
                title=form.cleaned_data['title'],
                name=form.cleaned_data['name'],
                license=form.cleaned_data['license'],
                author=form.cleaned_data['author'],
                description=form.cleaned_data['description'],
                resource=a_file)

            resource.stub = False
            resource.in_agent = group.get_ref()

            # don't allow name to change as this affects the url
            if old_name:
                resource.name = old_name
            resource.save()

            if not success_url:
                success_url = reverse(current_app + ':view_Resource',
                                      args=(group.id, resource.name))

            from apps.plus_feed.models import FeedItem
            FeedItem.post_UPLOAD(request.user, resource)

            return HttpResponseRedirect(success_url)

        else:
            pass
예제 #2
0
            resource.save()

            if not success_url:
                success_url = reverse(current_app + ':view_Resource',
                                      args=(group.id, resource.name))

            from apps.plus_feed.models import FeedItem
            FeedItem.post_UPLOAD(request.user, resource)

            return HttpResponseRedirect(success_url)

        else:
            pass

    else:
        form = UploadFileForm()
        form.data['title'] = secure_upload.title
        form.data['name'] = secure_upload.name

    tags = get_tags_for_object(secure_upload, request.user)

    return render_to_response(
        template_name,
        {
            'upload': TemplateSecureWrapper(secure_upload),
            'resource': TemplateSecureWrapper(
                secure_upload
            ),  # let's us use resource_common included template
            'data': form.data,
            'errors': form.errors,
            'form_action': '',