def playlists(request, pltype): user = get_user(request) LIST_HEADERS = ( ('Playlist', 'list_name'), ('Created by', 'created_by__username'), ('Created on', 'created_on'), ('# of Records', 'num_records'), ) sort_headers = SortHeaders(request, LIST_HEADERS) if (pltype == 'my'): playlists = Playlist.objects.filter(created_by__id=user.id)\ .annotate(num_records=Count('playlistitem')).order_by(sort_headers.get_order_by()) elif (pltype == 'sharedwm'): playlists = Playlist.objects.filter(playlistshare__shared_to__id=user.id)\ .annotate(num_records=Count('playlistitem')).order_by(sort_headers.get_order_by()) elif (pltype == 'myshared'): playlists = Playlist.objects.filter(playlistshare__created_by__id=user.id)\ .annotate(num_records=Count('playlistitem')).order_by(sort_headers.get_order_by()) else: pltype = 'all' playlists = Playlist.objects.filter(is_published=True).annotate(num_records=Count('playlistitem'))\ .order_by(sort_headers.get_order_by()) return object_list(request, template_name='playlists.html', queryset=playlists, paginate_by=10, extra_context={'ptype':pltype, 'request_querydict': request.GET, 'headers': list(sort_headers.headers())})
def search_track(request): query_string = request.GET.get('q', '') cur_user = get_user(request) if (cur_user.is_authenticated()): playlists = Playlist.objects.filter(created_by=cur_user) else: playlists = [] form = SearchForm() if query_string: LIST_HEADERS = ( ('Title', 'track__title'), ('Artists', 'track__trackartist__artist__name'), ('Music Writer', 'track__music_writer'), ('Release Date', 'track__release_date'), ('Genre', 'track__genre__genre_name'), ('Original Version', 'track__original_version__title'), ) # additional_params = 'q=' + query_string sort_headers = SortHeaders(request, LIST_HEADERS) entry_query = get_query(query_string.strip(), ['track__title', 'record__genre__genre_name',\ 'track__music_writer', 'track__genre__genre_name' ,\ 'track__trackartist__artist__name', 'record__title', ]) track_list = Recordtrack.objects.filter(entry_query).order_by(sort_headers. get_order_by()).distinct() context = {'q':query_string, 'form': form, 'request_querydict': request.GET, \ 'playlists': playlists, 'view': 'track', 'headers': sort_headers.headers(), } return object_list(request, template_name='search_results.html', queryset=track_list, paginate_by=10, extra_context=context) else: form = SearchForm() context = {'form': form, 'record_list': []} t = loader.get_template("search_results.html") c = RequestContext(request, context) return HttpResponse(t.render(c))
def library(request, list_type): user = get_user(request) LIST_HEADERS = ( ('Title', 'record__title'), ('Artist', 'record__artist__name'), ('Genre', 'record__genre__genre_name'), ('Category', 'record__category__category_name'), ('# of Tracks', 'num_tracks'), ('Producer', 'record__producer'), ) sort_headers = SortHeaders(request, LIST_HEADERS) records = RecordLibraryItem.objects.filter(user=user.id, \ library__library_type=list_type)\ .annotate(num_tracks=Count('record__recordtrack')).order_by(sort_headers.get_order_by()) return object_list(request, template_name='library.html', queryset=records, paginate_by=10, extra_context={'list_type':list_type, 'request_querydict': request.GET, 'headers': list(sort_headers.headers())})
def search_record(request): query_string = request.GET.get('q', '') form = SearchForm() if query_string: LIST_HEADERS = ( ('Title', 'title'), ('Matrix Number', 'matrix_number'), ('Artists', 'artist__name'), ('Rating', 'rating__avg_rating'), ('Genre', 'genre__genre_name'), ('Category', 'category__category_name'), ) # additional_params = 'q=' + query_string sort_headers = SortHeaders(request, LIST_HEADERS) entry_query = get_query(query_string.strip(), ['title', 'genre__genre_name', 'category__category_name', 'artist__name', 'recordtrack__track__title', ]) record_list = Record.objects.filter(entry_query).order_by(sort_headers.get_order_by()).distinct() context = {'q':query_string, 'form': form, 'request_querydict': request.GET, 'view': 'rec', 'headers': sort_headers.headers()} return object_list(request, template_name='search_results.html', queryset=record_list, paginate_by=10, extra_context=context) else: form = SearchForm() context = {'form': form, 'record_list': []} t = loader.get_template("search_results.html") c = RequestContext(request, context) return HttpResponse(t.render(c))