コード例 #1
0
def upload(request, class_name, id):
    form = None
    instance = get_class(class_name).objects.get(pk=id)
    view_url = reverse('portal.files.views.upload', args=[class_name, id, ])

    if request.method == 'POST':
        form = UploadedFileForm(request.POST, request.FILES)
        if form.is_valid():

            file = form.save(commit=False)
            file.content_type = ContentType.objects.get_for_model(instance)
            file.object_pk = force_unicode(instance._get_pk_val())
            file.user = request.user

            file.save()

            instance.notify_upload(request.user, file)
            
            return HttpResponseRedirect(instance.get_absolute_url())
    else:
        form = UploadedFileForm()

    upload_url, upload_data = prepare_upload(request, view_url)

    ctx = {
        'form': form,
        'upload_url': upload_url,
        'upload_data': upload_data,
    }

    return direct_to_template(request, 'files/form.html', ctx)
コード例 #2
0
def save(request, class_name, slug):
    instance = get_class(class_name).objects.get(slug=slug)
    form = None

    if request.method == 'GET':
        initial = {
            'slug': slug,
        }

        form = AlbumForm(initial)
    else:
        form = AlbumForm(request.POST)
        if form.is_valid():
            data  = form.cleaned_data
            album = Album.create_album(title=data['title'], instance=instance)

            for picture_id in request.POST['picture_id'].split(','):
                album.add_picture(Picture.objects.get(pk=int(picture_id)))

            return HttpResponseRedirect(reverse('portal.album.views.detail', args=[class_name, slug, album.id,]))

    ctx = {
        'instance': instance,
        'form': form,
    }

    return direct_to_template(request, 'album/form.html', ctx)
コード例 #3
0
def detail(request, class_name, slug, album_id):
    instance = get_class(class_name).objects.get(slug=slug)
    album = Album.objects.get(pk=album_id)

    ctx = {
        'instance': instance,
        'album': album,
    }

    return direct_to_template(request, 'album/detail.html', ctx)
コード例 #4
0
def add_picture(request, class_name, slug, album_id):
    instance = get_class(class_name).objects.get(slug=slug)
    album    = Album.objects.get(pk=album_id)
    form     = None

    if request.method == 'GET':
        form = PictureForm()
    else:
        form = PictureForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            if request.FILES.has_key('picture'):
                picture = Picture()
                picture.picture = request.FILES['picture'].read()
                picture.save()

                rpa = RelPictureAlbum(picture=picture, album=album)

                if data.has_key('description'):
                    rpa.description = data['description']
                if data.has_key('is_cover'):
                    rpa.is_cover = True
                    
                rpa.save()

                return HttpResponseRedirect(reverse('portal.album.views.detail', args=[class_name, slug, album_id, ]))
            else:
                form.errors['picture'] = form.error_class([_('The picture is required.'),])

    ctx = {
        'instance': instance,
        'album': album,
        'form': form,
    }

    return direct_to_template(request, 'album/add_picture.html', ctx)