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)
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)
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)
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)