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))
Example #2
0
 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))
Example #4
0
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)
Example #5
0
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)