# Create your views here.
|
|
from django.shortcuts import render, get_object_or_404, redirect
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from .models import Artista, Album, Song
|
|
from .forms import ArtistaForm, AlbumForm, SongForm
|
|
|
|
|
|
@login_required
|
|
def principal(request):
|
|
artistas = Artista.objects.all()
|
|
albumes = Album.objects.all()
|
|
|
|
return render(request, 'lyrics/index.html', {'artistas': artistas, 'albumes': albumes})
|
|
|
|
|
|
#########################
|
|
# Vistas para los artistas
|
|
@login_required
|
|
def lista_artistas(request):
|
|
artistas = Artista.objects.all()
|
|
return render(request, 'lyrics/lista_artistas.html', {'artistas': artistas})
|
|
|
|
|
|
@login_required
|
|
def detalle_artista(request, artista_id):
|
|
artista = get_object_or_404(Artista, pk=artista_id)
|
|
|
|
albumes = Album.objects.filter(artist=artista_id)
|
|
|
|
return render(request, 'lyrics/detalle_artista.html', {'artista': artista, 'albumes': albumes})
|
|
|
|
|
|
@login_required
|
|
def nuevo_artista(request):
|
|
if request.method == 'POST':
|
|
form = ArtistaForm(request.POST, request.FILES)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lyrics:lista_artistas')
|
|
else:
|
|
form = ArtistaForm()
|
|
return render(request, 'lyrics/form_artista.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def editar_artista(request, artista_id):
|
|
artista = get_object_or_404(Artista, pk=artista_id)
|
|
if request.method == 'POST':
|
|
form = ArtistaForm(request.POST, request.FILES, instance=artista)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lyrics:lista_artistas')
|
|
else:
|
|
form = ArtistaForm(instance=artista)
|
|
return render(request, 'lyrics/form_artista.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def eliminar_artista(request, artista_id):
|
|
artista = get_object_or_404(Artista, pk=artista_id)
|
|
artista.delete()
|
|
return redirect('lyrics:lista_artistas')
|
|
|
|
|
|
#########################
|
|
# Vistas para los albumes
|
|
@login_required
|
|
def lista_albumes(request):
|
|
albumes = Album.objects.all()
|
|
return render(request, 'lyrics/lista_albumes.html', {'albumes': albumes})
|
|
|
|
|
|
@login_required
|
|
def detalle_album(request, album_id):
|
|
album = get_object_or_404(Album, pk=album_id)
|
|
songs = Song.objects.filter(album_id=album_id)
|
|
|
|
return render(request, 'lyrics/detalle_album.html', {'album': album, 'songs': songs})
|
|
|
|
|
|
@login_required
|
|
def nuevo_album(request):
|
|
|
|
artistas = Artista.objects.all() # vamos a ver si hay vehículos dados de alta
|
|
|
|
if artistas:
|
|
if request.method == 'POST':
|
|
form = AlbumForm(request.POST, request.FILES)
|
|
if form.is_valid():
|
|
form.save()
|
|
|
|
return redirect('lyrics:lista_albumes')
|
|
else:
|
|
form = AlbumForm()
|
|
return render(request, 'lyrics/form_album.html', {'form': form})
|
|
else:
|
|
return render(request, 'lyrics/index.html')
|
|
|
|
|
|
@login_required
|
|
def editar_album(request, album_id):
|
|
album = get_object_or_404(Album, pk=album_id)
|
|
|
|
if request.method == 'POST':
|
|
form = AlbumForm(request.POST, request.FILES, instance=album)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lyrics:lista_albumes')
|
|
else:
|
|
form = AlbumForm(instance=album)
|
|
return render(request, 'lyrics/form_album.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def eliminar_album(request, album_id):
|
|
album = Album.objects.get(pk=album_id)
|
|
album.delete()
|
|
return redirect('lyrics:lista_albumes')
|
|
|
|
|
|
#########################
|
|
# Vistas para los songs
|
|
@login_required
|
|
def lista_songs(request):
|
|
songs = Song.objects.all()
|
|
return render(request, 'lyrics/lista_songs.html', {'songs': songs})
|
|
|
|
|
|
@login_required
|
|
def detalle_song(request, song_id):
|
|
song = get_object_or_404(Song, pk=song_id)
|
|
|
|
albumes = Album.objects.filter(song=song_id)
|
|
|
|
return render(request, 'lyrics/detalle_song.html', {'song': song, 'albumes': albumes})
|
|
|
|
|
|
@login_required
|
|
def nuevo_song(request):
|
|
if request.method == 'POST':
|
|
form = SongForm(request.POST, request.FILES)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lyrics:lista_songs')
|
|
else:
|
|
form = SongForm()
|
|
return render(request, 'lyrics/form_song.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def editar_song(request, song_id):
|
|
song = get_object_or_404(Song, pk=song_id)
|
|
if request.method == 'POST':
|
|
form = SongForm(request.POST, request.FILES, instance=song)
|
|
if form.is_valid():
|
|
form.save()
|
|
return redirect('lyrics:lista_songs')
|
|
else:
|
|
form = SongForm(instance=song)
|
|
return render(request, 'lyrics/form_song.html', {'form': form})
|
|
|
|
|
|
@login_required
|
|
def eliminar_song(request, song_id):
|
|
song = get_object_or_404(Song, pk=song_id)
|
|
song.delete()
|
|
return redirect('lyrics:lista_songs')
|