[d7662b5] | 1 | from django.shortcuts import render
|
---|
| 2 | import os
|
---|
| 3 | import django
|
---|
| 4 | from django.db import connection
|
---|
| 5 |
|
---|
| 6 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MuiscOrganizationSystem.settings')
|
---|
| 7 | django.setup()
|
---|
| 8 |
|
---|
| 9 | from music.models import *
|
---|
| 10 |
|
---|
| 11 |
|
---|
| 12 | # Create your views here.
|
---|
| 13 |
|
---|
| 14 | def album_list(request):
|
---|
| 15 | heading = request.GET.get('model', 'All Albums')
|
---|
| 16 | data = Album.objects.values_list('title', flat=True)
|
---|
[0e077ef] | 17 | return render(request, 'list.html', {'data': data, 'heading': heading})
|
---|
[d7662b5] | 18 |
|
---|
| 19 |
|
---|
| 20 | def track_list(request):
|
---|
| 21 | heading = request.GET.get('model', 'All Tracks')
|
---|
| 22 | data = Track.objects.values_list('name', flat=True)
|
---|
[0e077ef] | 23 | return render(request, 'list.html', {'data': data, 'heading': heading})
|
---|
[d7662b5] | 24 |
|
---|
| 25 |
|
---|
[0e077ef] | 26 | def artist_list(request):
|
---|
| 27 | heading = request.GET.get('model', 'All Artists')
|
---|
| 28 | data = Artist.objects.values_list('name', flat=True)
|
---|
| 29 | print(data)
|
---|
| 30 | return render(request, 'list.html', {'data': data, 'heading': heading})
|
---|
| 31 |
|
---|
| 32 |
|
---|
| 33 | # VIEWS
|
---|
[d7662b5] | 34 | def tracks_count_per_genre(request):
|
---|
| 35 | with connection.cursor() as cursor:
|
---|
| 36 | cursor.execute("SELECT * FROM track_count_per_genre;")
|
---|
| 37 | rows = cursor.fetchall()
|
---|
| 38 |
|
---|
| 39 | data = [{'genre': row[0], 'count': row[1]} for row in rows]
|
---|
| 40 | print(data)
|
---|
| 41 |
|
---|
| 42 | return render(request, 'track_count_per_genre.html', {'data': data})
|
---|
| 43 |
|
---|
| 44 |
|
---|
[0e077ef] | 45 | def avg_track_duration(request):
|
---|
| 46 | with connection.cursor() as cursor:
|
---|
| 47 | cursor.execute("SELECT * FROM avg_track_duration_per_artist;")
|
---|
| 48 | rows = cursor.fetchall()
|
---|
| 49 |
|
---|
| 50 | data = [{'artist': row[0], 'avg': row[1]} for row in rows]
|
---|
[d7662b5] | 51 | print(data)
|
---|
[0e077ef] | 52 |
|
---|
| 53 | return render(request, 'avg_track_duration.html', {'data': data})
|
---|
| 54 |
|
---|
| 55 |
|
---|
| 56 | def rank_list_most_active_customers(request):
|
---|
| 57 | with connection.cursor() as cursor:
|
---|
| 58 | cursor.execute("SELECT * FROM rank_list_most_active_customers_view;")
|
---|
| 59 | rows = cursor.fetchall()
|
---|
| 60 |
|
---|
| 61 | data = [{'name': row[0], 'total_orders': row[1], 'total_money_spent': row[2]} for row in rows]
|
---|
| 62 |
|
---|
| 63 | return render(request, 'rank_list_most_active_customers.html', {'data': data})
|
---|
[bfca48b] | 64 |
|
---|
| 65 |
|
---|
| 66 | def avg_price_per_artist(request):
|
---|
| 67 | with connection.cursor() as cursor:
|
---|
| 68 | cursor.execute("SELECT * FROM avg_price_per_artist;")
|
---|
| 69 | rows = cursor.fetchall()
|
---|
| 70 |
|
---|
| 71 | data = [{'name': row[0], 'avg_price_per_track': row[1]} for row in rows]
|
---|
| 72 |
|
---|
| 73 | return render(request, 'avg_price_per_artist.html', {'data': data})
|
---|
| 74 |
|
---|
| 75 |
|
---|
| 76 | def rank_list_artists(request):
|
---|
| 77 | with connection.cursor() as cursor:
|
---|
| 78 | cursor.execute("SELECT * FROM rank_list_artists;")
|
---|
| 79 | rows = cursor.fetchall()
|
---|
| 80 |
|
---|
| 81 | data = [{'name': row[0], 'num_invoices': row[1]} for row in rows]
|
---|
| 82 |
|
---|
| 83 | return render(request, 'rank_list_artists.html', {'data': data})
|
---|
| 84 |
|
---|
| 85 |
|
---|
| 86 |
|
---|
| 87 | def media_type_percentage(request):
|
---|
| 88 | with connection.cursor() as cursor:
|
---|
| 89 | cursor.execute("SELECT * FROM media_type_percentage;")
|
---|
| 90 | rows = cursor.fetchall()
|
---|
| 91 |
|
---|
| 92 | data = [{'name': row[0], 'num_of_tracks': row[1], 'percentage': row[2]} for row in rows]
|
---|
| 93 |
|
---|
| 94 | return render(request, 'media_type_percentage.html', {'data': data})
|
---|
| 95 |
|
---|
| 96 |
|
---|
| 97 | def most_listened_genre_per_customer(request):
|
---|
| 98 | with connection.cursor() as cursor:
|
---|
| 99 | cursor.execute("SELECT * FROM most_listened_genre_per_customer;")
|
---|
| 100 | rows = cursor.fetchall()
|
---|
| 101 |
|
---|
| 102 | data = [{'first_name': row[0], 'last_name': row[1], 'most_listened_genre': row[2]} for row in rows]
|
---|
| 103 |
|
---|
| 104 | return render(request, 'most_listened_genre_per_customer.html', {'data': data})
|
---|