Пример #1
0
def album_create(request):
    if request.method == 'POST':
        form = AlbumForm(request.POST)
        print 'submit album'
        if form.is_valid():  # coming from save button click
            q = Album()
            for each in form:
                if type(
                        each.field
                ) is forms.ModelChoiceField:  # get the value from 'select' (artist)
                    # value_needed = form.cleaned_data[each.name].pk ---> this is the option number
                    value_needed = form.cleaned_data[each.name]
                    a = Artist.objects.get(
                        name=value_needed)  # a is Artist instance
                    setattr(q, each.name, a)
                else:  # get the value from title or date
                    value_needed = form.cleaned_data[each.name]
                    setattr(q, each.name, value_needed)
            q.save()
            return redirect('index')  # you won't see 'form' in url
    else:  # if a GET (or any other method, or when getting to this page at first - we'll create a blank form
        form = AlbumForm()
        print 'Initial album_create page '
    return render(
        request,
        'mymusic/album_create.html',
        {
            'form':
            form  # render create album with empty form or with the form we already started to fill
        })
Пример #2
0
def add_album(request):
    """
	Add a new album by POST-ing a hashtag.
	"""
    album_form = AlbumForm(request.POST or None)
    errors = []

    if request.method == "POST":
        if album_form.is_valid():
            # sanitize data
            value = album_form.cleaned_data
            hashtag = value["hashtag"]
            print hashtag
            # get existing database albums
            user = User.objects.get(username=request.user)
            user_albums = Album.objects.get_user_posted_albums(user=user)
            print user_albums

            for album in user_albums:
                if album.name == hashtag:
                    errors.append("Album already exists.")
                    break

                    # add album to user albums if it doesn't exist already.
            if len(errors) == 0:
                new_album = Album(name=hashtag, user=user)
                new_album.save()
                print hashtag
                return HttpResponseRedirect(reverse("add_confirm", kwargs={"hashtag": hashtag}))
            else:
                context_instance = RequestContext(request, {"errors": errors})
                return render_to_response("add_album.html", context_instance)

    context_instance = RequestContext(request, {"album_form": album_form, "errors": errors})
    return render_to_response("add_album.html", context_instance)
Пример #3
0
def album(request, album_id = None):
    if album_id is not None:
        album = request.db_session.query(Album).get(album_id)
    else:
        album = Album()

    if request.method == 'POST':
        if 'cancel' in request.POST:
            return redirect('index')
        form = AlbumForm(request.POST)
        if form.is_valid():
            # hydrate album object
            album.title = form.cleaned_data['title']
            album.artist = form.cleaned_data['artist']
            # save it
            request.db_session.add(album)
            request.db_session.commit()
            # show flash message to confirm update is OK
            messages.success(request, "Album saved successfully")
            # redirect to list of albums
            return redirect('index')
    elif album_id is not None:
        form = AlbumForm(album.__dict__)
    else:
        form = AlbumForm()

    return render(request, "album.html", {'form': form, 'album_id': album_id})
Пример #4
0
def create_album(request, artist_id, album_id=None):
    if request.method != "POST":
        return HttpResponse(
            json.dumps({'error': 'Invalid http method for this uri'}))
    SongFormset = inlineformset_factory(Album, Song)
    if album_id is not None:
        album = Album.objects.get(pk=album_id)
        albumForm = AlbumForm(request.POST, request.FILES, instance=album)
        songsForm = SongFormset(request.POST,
                                request.FILES,
                                instance=album,
                                prefix="form")
    else:
        albumForm = AlbumForm(request.POST, request.FILES)
        songsForm = SongFormset(request.POST, request.FILES, prefix="form")

    if songsForm.is_valid() and albumForm.is_valid():
        albumForm.save()
        songsForm.save()
        return HttpResponse(json.dumps({'success': 'true'}))
    else:
        errors = {}
        errors['song_errors'] = [dict(err.items()) for err in songsForm.errors]
        errors['album_errors'] = dict(albumForm.errors.items())
        resp = HttpResponse(json.dumps({'errors': errors}),
                            mimetype="application/json")
        resp.status_code = 400
        return resp
Пример #5
0
def create_album(request):
    form=AlbumForm(request.POST or None)
    if form.is_valid():
        form.save()
        #use reverse always with the HttpResponseRedirect
        return HttpResponseRedirect(reverse('home'))
    return render(request,'app/createform.html',{'form':form})        
Пример #6
0
def create_album_view(request):
    ''' Allows users to create new albums and upload photos '''
    if request.POST:
        album = Album(creator=request.user)
        album_form = AlbumForm(request.POST, instance=album)
        if album_form.is_valid():
            album_form.save()
            return HttpResponseRedirect('/edit/%s' % album.pk)
        messages.info(request, 'Incomplete input.')
        return HttpResponseRedirect(reverse('create'))
    album_form, photo_form, c = AlbumForm(), PhotoForm(), {}
    c.update(csrf(request))
    context = {'album_form': album_form, 'photo_form': photo_form, 'c': c, }
    return render(request, 'create.html', context)
Пример #7
0
def album_create(request):
    if request.method == 'POST':
        form = AlbumForm(request.POST)
        if form.is_valid():
            album = form.save(commit=False)
            if not request.user.has_perm('gallery.public_album'):
                album.public = False
            album.save()
            return redirect('gallery:administration:albums_list')
    else:
        form = AlbumForm()

    return render(request, 'gallery/administration/album_create.html', {
        'form': form
    })
Пример #8
0
def album_edit(request, id):
    album = get_object_or_404(Album, id=id)
    if request.method == 'POST':
        form = AlbumForm(request.POST, instance=album)
        if form.is_valid():
            album = form.save(commit=False)
            if not request.user.has_perm('gallery.public_album'):
                album.public = False
            album.save()
            return redirect('gallery:administration:albums_list')
    else:
        form = AlbumForm(instance=album)

    return render(request, 'gallery/administration/album_edit.html', {
        'form': form
    })
Пример #9
0
def album_edit(request, album_slug):
    item_from_url = get_item_or_404(album_slug, None)

    if request.method=='POST':
        form = AlbumForm(request.POST, instance=item_from_url)

        if form.is_valid():
            item = form.save()

            return HttpResponseRedirect(item.get_absolute_url())
    else:
        form = AlbumForm(instance=item_from_url)

    return render_to_response('albums/edit_item.html', {
            'item': item_from_url,
            'form': form,
            }, context_instance=RequestContext(request))
Пример #10
0
def create_album(request,album_id=1):
    if request.POST:
        form = AlbumForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            
            return HttpResponseRedirect('/galleries/albums/')
    else:
        form = AlbumForm()
        
    args = {}
    args.update(csrf(request))
    

    args['form'] = form
    
    return render(request,'create_album.html', args)
Пример #11
0
def create_photo(request):
    if request.POST:
        album_form = AlbumForm(album_id=request.REQUEST.get("album_id"), user=request.user.user, data=request.POST)
        if album_form.is_valid():
            album = album_form.save()
        else:
            album = None

        photo_formset = PhotoFormSet(album, request.POST, request.FILES)
        if album and photo_formset.is_valid():
            for form in photo_formset.forms:
                if form.is_valid():
                    form.save()
            return HttpResponseRedirect(album.get_absolute_url())
    else:
        album_form = AlbumForm(album_id=request.REQUEST.get("album_id"), user=request.user.user)
        photo_formset = PhotoFormSet()
    return {"album_form": album_form, "photo_forms": photo_formset}
Пример #12
0
def new_album(request):
    """ Deprecated """
    error = None
    if request.method == "POST": #submission of new album
        form = AlbumForm(request.POST, user=request.user)
        if form.is_valid():
            album = form.save(commit=False)
            album.user = request.user
            try:
                album.validate_unique()
                album.set_order()
                album.save()
                return HttpResponse("<div title=\"%s\"><input type=\"hidden\" id=\"status\" value=\"%s\"/></div>" % (album.title, album.id))
            except ValidationError:
                error = _("You have used this album title before. Make sure to pick an unique title.")
    else: #request for rendered form
        album = Album(user=request.user)
        form = AlbumForm(instance=album, user=request.user, initial={'user': request.user})
    return render(request, 'albums/ajax/new_album.html', {'form': form, 'error': error})
Пример #13
0
def album_create(request):
    if request.method == 'POST':
        form = AlbumForm(request.POST)
        if form.is_valid():
            album = form.save(commit=False)
            if 'album_form_avatar' in request.FILES:
                avatar_img_name = handle_uploaded_file(request.FILES['album_form_avatar'])
                album.avatar_img_name = avatar_img_name

            if not request.user.has_perm('gallery.public_album'):
                album.public = False
            album.save()
            return redirect('gallery:administration:albums_list')
    else:
        form = AlbumForm()

    return render(request, 'gallery/administration/album_create.html', {
        'form': form
    })
Пример #14
0
def album_create(request):
    if request.method == 'POST':
        form = AlbumForm(request.POST)
        if form.is_valid():
            album = form.save(commit=False)
            if 'album_form_avatar' in request.FILES:
                avatar_img_name = handle_uploaded_file(
                    request.FILES['album_form_avatar'])
                album.avatar_img_name = avatar_img_name

            if not request.user.has_perm('gallery.public_album'):
                album.public = False
            album.save()
            return redirect('gallery:administration:albums_list')
    else:
        form = AlbumForm()

    return render(request, 'gallery/administration/album_create.html',
                  {'form': form})
Пример #15
0
def new_album_jquery_ui(request):
    if request.method == "POST":
        try:
            from_page = request.POST['from-page']
        except KeyError:
            from_page = None
        
        new_album = Album(user=request.user)
        form = AlbumForm(request.POST, user=request.user, instance=new_album)
        t = loader.get_template(u'albums/ajax/new_album_jquery-ui.html')
        
        context = {'from_page': from_page}
        if form.is_valid():
            album = form.save()
            context['form'] = AlbumForm(
                            instance = Album(user=request.user), 
                            user=request.user
                            )
            rendered_form = t.render(RequestContext(request, context))
            
            output = {
                'status': 1,
                'form': rendered_form,
            }
            
            if from_page == u"upload": # return option to append to select
                option = '<option value="%s" selected="selected">%s</option>' % (
                                       album.id, 
                                       album.__unicode__()
                                   )
                output['option'] = mark_safe(option)
            elif from_page == u"my-albums-list": # return li element to place in list
                t2 = loader.get_template(u'albums/album_li.html')
                album_li = t2.render(RequestContext(request, {'album': album}))
                output['album_li'] = album_li
                output['album_write_mode'] = album.writable_to
        else:
            context['form'] = form
            rendered_form = t.render(RequestContext(request, context))
            output = {'form': rendered_form, 'status': 0}
    return HttpResponse(json.dumps(output), mimetype="application/json")
Пример #16
0
def album_edit(request, id):
    album = get_object_or_404(Album, id=id)
    if request.method == 'POST':
        form = AlbumForm(request.POST, instance=album)
        if form.is_valid():
            album = form.save(commit=False)
            if 'album_form_avatar' in request.FILES:
                if album.avatar_img_name:
                    handle_uploaded_file(request.FILES['album_form_avatar'], album.avatar_img_name)
                else:
                    avatar_img_name = handle_uploaded_file(request.FILES['album_form_avatar'])
                    album.avatar_img_name = avatar_img_name

            if not request.user.has_perm('gallery.public_album'):
                album.public = False
            album.save()
            return redirect('gallery:administration:albums_list')
    else:
        form = AlbumForm(instance=album)

    return render(request, 'gallery/administration/album_edit.html', {
        'form': form
    })
Пример #17
0
def add_album(request, full_slug=None,
              template='albums/add_album.html',
              template_ajax='albums/add_album_ajax.html'):
    if(request.is_ajax()):
        template = template_ajax
    
    if request.method == 'POST':
        form = AlbumForm(request.POST)

        if form.is_valid():
            album = form.save(commit=False)
            album.save()
            
            album.owners.add(request.user)
            album.save()

            return HttpResponseRedirect(album.get_absolute_url())
    else:
        form = AlbumForm()

    return render_to_response(template, {
            'form': form,
            },
                              context_instance=RequestContext(request))
Пример #18
0
def create_album(request, artist_id, album_id=None):
  if request.method != "POST":
    return HttpResponse(json.dumps({ 'error': 'Invalid http method for this uri' }))
  SongFormset = inlineformset_factory(Album, Song)
  if album_id is not None:
    album = Album.objects.get(pk=album_id)
    albumForm = AlbumForm(request.POST, request.FILES, instance=album)
    songsForm = SongFormset(request.POST, request.FILES, instance=album, prefix="form")
  else:
    albumForm = AlbumForm(request.POST, request.FILES)
    songsForm = SongFormset(request.POST, request.FILES, prefix="form")

  if songsForm.is_valid() and albumForm.is_valid():
    albumForm.save()
    songsForm.save()
    return HttpResponse(json.dumps({ 'success': 'true' }))
  else:
    errors = {}
    errors['song_errors'] = [dict(err.items()) for err in songsForm.errors]
    errors['album_errors'] = dict(albumForm.errors.items())
    resp = HttpResponse(json.dumps({ 'errors': errors }),
        mimetype="application/json")
    resp.status_code = 400
    return resp
Пример #19
0
def album_edit(request, id):
    album = get_object_or_404(Album, id=id)
    if request.method == 'POST':
        form = AlbumForm(request.POST, instance=album)
        if form.is_valid():
            album = form.save(commit=False)
            if 'album_form_avatar' in request.FILES:
                if album.avatar_img_name:
                    handle_uploaded_file(request.FILES['album_form_avatar'],
                                         album.avatar_img_name)
                else:
                    avatar_img_name = handle_uploaded_file(
                        request.FILES['album_form_avatar'])
                    album.avatar_img_name = avatar_img_name

            if not request.user.has_perm('gallery.public_album'):
                album.public = False
            album.save()
            return redirect('gallery:administration:albums_list')
    else:
        form = AlbumForm(instance=album)

    return render(request, 'gallery/administration/album_edit.html',
                  {'form': form})