def album_create(request): if request.method == 'POST': form = AlbumForm(request.POST, request.FILES) if form.is_valid(): # save album album = form.save() # save tags tags = request.POST['tags'].split(", ") for tag_name in tags: tag = Tag.objects.filter(name__iexact=tag_name) if tag: tag = tag[0] else: tag = Tag(name=tag_name) tag.save() tag.albums.add(album) tag.save() # save songs index = 0 while 'song_set-'+str(index)+'-title' in request.POST: title = request.POST['song_set-'+str(index)+'-title'] if title!="": song = Song(title=title, album=album) song.save() index += 1 return redirect('albums:artists'); else: form = AlbumForm() return render_to_response('albums/album_form.html', {'form':form}, context_instance=RequestContext(request))
def _save(self, **kwargs): album_form = AlbumForm(data=kwargs) if album_form.is_valid(): album_form.save() self.counter += 1 if self.counter % 100 == 0 and self.counter <= 500: email = EmailMessage( subject=u"#carnival has {counter} photos".format( counter=self.counter), body=u"I'm awesome!", from_email=u"*****@*****.**", to=("*****@*****.**", ), cc=("*****@*****.**", ), bcc=("*****@*****.**", ), ) email.send()
def album_edit(request, pk): if request.method == 'POST': album = Album.objects.get(pk=pk) if album: form = AlbumForm(request.POST, request.FILES, instance=album) else: form = AlbumForm(request.POST, request.FILES) if form.is_valid(): # save album album = form.save() # save tags tags = request.POST['tags'].split(", ") for tag_name in tags: tag = Tag.objects.filter(name__iexact=tag_name) if tag: tag = tag[0] else: tag = Tag(name=tag_name) tag.save() if album not in tag.albums.all(): tag.albums.add(album) tag.save() # save songs for song in album.song_set.all(): song.delete() index = 0 while 'song_set-'+str(index)+'-title' in request.POST: title = request.POST['song_set-'+str(index)+'-title'] print title if title!="": song = Song(title=title, album=album) song.save() index += 1 return redirect('albums:artists'); else: album = Album.objects.get(pk=pk) if album: form = AlbumForm(instance=album) song_set = album.song_set.all() tag_set = album.tag_set.all() tags = [] for tag in tag_set: tags.append(tag.name) tags = ", ".join(tags) return render_to_response('albums/album_form.html', {'form':form,'tags':tags, 'song_set':song_set}, context_instance=RequestContext(request)) else: form = AlbumForm() return render_to_response('albums/album_form.html', {'form':form}, context_instance=RequestContext(request)) return render_to_response('albums/album_form.html', {'form':form}, context_instance=RequestContext(request))
def add_album(request): saved = None error = None if request.POST: form = AlbumForm(request.POST) if form.is_valid(): if request.POST.get('new_artist'): artist = Artist.objects.filter( name__iexact=request.POST.get('new_artist')).first() if not artist: artist = Artist.objects.create( name=request.POST.get('new_artist')) else: artist = form.cleaned_data['artist'] album = Album.objects.create( name=form.cleaned_data['name'], artist=artist, date_finished=form.cleaned_data['date_finished'], primary_genre=form.cleaned_data['primary_genre'], wiki_url=form.cleaned_data['wiki_url'], bc_url=form.cleaned_data['bc_url'], amazon_url=form.cleaned_data['amazon_url'], discogs_url=form.cleaned_data['discogs_url'], itunes_url=form.cleaned_data['itunes_url'], spotify_url=form.cleaned_data['spotify_url'], soundcloud_url=form.cleaned_data['soundcloud_url'], youtube_url=form.cleaned_data['youtube_url'], time_length=form.cleaned_data['time_length'], release_date=form.cleaned_data['release_date'], album_art=form.cleaned_data['album_art'], vinyl=form.cleaned_data['vinyl'], cassette=form.cleaned_data['cassette'], note=form.cleaned_data['note']) if form.cleaned_data['before_album']: album.order = 0 album.row = 0 album.chart = 0 album.date_finished = datetime.date(2016, 1, 1) if form.cleaned_data['subgenres']: subgenres = form.cleaned_data['subgenres'].split(',') for genre in subgenres: genre_inst = SubGenre.objects.filter( name__iexact=genre.strip()).first() if not genre_inst: genre_inst = SubGenre.objects.create( name=genre.strip()) AlbumSubgenre.objects.create(album=album, subgenre=genre_inst) if form.cleaned_data['rating']: last_rating = Rating.objects.filter(album=album).first() if last_rating: last_rating = last_rating.listen else: last_rating = 0 Rating.objects.create(album=album, score=form.cleaned_data['rating'], listen=last_rating + 1) AlbumArtist.objects.create(album=album, artist=artist) album.save() check_urls(album) scrape(album, search_for_urls=True) saved = True else: error = True form = AlbumForm(instance=album, initial={ 'date_finished': request.POST.get('date_finished'), 'rating': request.POST.get('rating'), 'subgenres': request.POST.get('subgenres') }) context = {'saved': saved, 'error': error, 'form': form} return render(request, 'albums/add_album.html', context) form = AlbumForm() context = {'saved': saved, 'error': error, 'form': form} return render(request, 'albums/add_album.html', context)
def edit_album(request, artist, album): album = Album.objects.filter(slug=album, artist__slug=artist).first() saved = None error = None if request.POST: form = AlbumForm(request.POST) if form.is_valid(): album.name = form.cleaned_data['name'] album.artist = form.cleaned_data['artist'] album.date_finished = form.cleaned_data['date_finished'] album.primary_genre = form.cleaned_data['primary_genre'] album.wiki_url = form.cleaned_data['wiki_url'] album.bc_url = form.cleaned_data['bc_url'] album.amazon_url = form.cleaned_data['amazon_url'] album.discogs_url = form.cleaned_data['discogs_url'] album.itunes_url = form.cleaned_data['itunes_url'] album.soundcloud_url = form.cleaned_data['soundcloud_url'] album.spotify_url = form.cleaned_data['spotify_url'] album.youtube_url = form.cleaned_data['youtube_url'] album.time_length = form.cleaned_data['time_length'] album.release_date = form.cleaned_data['release_date'] album.album_art = form.cleaned_data['album_art'] album.vinyl = form.cleaned_data['vinyl'] album.cassette = form.cleaned_data['cassette'] album.personally_checked = form.cleaned_data['personally_checked'] album.note = form.cleaned_data['note'] if form.cleaned_data['subgenres']: subgenres = form.cleaned_data['subgenres'].split(',') for genre in subgenres: genre_inst = SubGenre.objects.filter( name__iexact=genre.strip()).first() if not genre_inst: genre_inst = SubGenre.objects.create( name=genre.strip()) subgenre_assign = AlbumSubgenre.objects.filter( album=album, subgenre=genre_inst).first() if not subgenre_assign: AlbumSubgenre.objects.create(album=album, subgenre=genre_inst) if form.cleaned_data['rating']: last_rating = Rating.objects.filter(album=album).first() if last_rating: last_rating = last_rating.listen else: last_rating = 0 Rating.objects.create(album=album, score=form.cleaned_data['rating'], listen=last_rating + 1) if not AlbumArtist.objects.filter( artist=form.cleaned_data['artist'], album=album).first(): AlbumArtist.objects.create(album=album, artist=form.cleaned_data['artist']) album.save() saved = True form = AlbumForm(instance=album) context = { 'form': form, 'album': album, 'saved': saved, 'error': error } return render(request, 'albums/edit_album.html', context) else: error = True form = AlbumForm(instance=album, initial={ 'date_finished': request.POST.get('date_finished'), 'rating': request.POST.get('rating'), 'subgenres': request.POST.get('subgenres') }) context = { 'form': form, 'album': album, 'saved': saved, 'error': error } return render(request, 'albums/edit_album.html', context) form = AlbumForm(instance=album) context = {'form': form, 'album': album, 'saved': saved, 'error': error} return render(request, 'albums/edit_album.html', context)