Filter out unnecessary columns in history table

This commit is contained in:
2018-11-06 18:22:27 -05:00
parent 4b19c932b0
commit b2990b45ee
5 changed files with 18 additions and 40 deletions

View File

@@ -2,7 +2,7 @@ import django_tables2 as tables
from pprint import pprint
from login.models import User
from api.models import History, Track
from api.models import History
class HistoryTable(tables.Table):
class Meta:
@@ -12,13 +12,6 @@ class HistoryTable(tables.Table):
track_name = tables.Column(accessor='get_track_name', orderable=False)
artists = tables.Column(accessor='get_artists', orderable=False)
# def render_track_name(self, record):
# return record.track.name
# return record.user
# def render_user(self, value):
# return ''
def get_secret_context(user_secret):
"""Return user_secret in context for graph pages.
@@ -27,30 +20,3 @@ def get_secret_context(user_secret):
"""
return { 'user_secret': user_secret, }
def get_user_history(user_secret):
"""Return all stored history for corresponding User to user_secret.
:user_secret: User secret to get history for.
:returns: list of lists of song history plus information.
"""
user_id = get_user_id_from_secret(user_secret)
history_fields = [field.name for field in History._meta.get_fields()]
# don't need ordering bc. django-tables2?
user_history = History.objects.filter(user__exact=user_id).order_by('-timestamp')
# user_history = History.objects.filter(user__exact=user_id).order_by('-timestamp')
user_history_table = HistoryTable(user_history)
return { 'user_id': user_id,
'history_fields': history_fields,
'user_history_table': user_history_table, }
def get_user_id_from_secret(user_secret):
"""Retrieve corresponding user_id for user_secret.
:user_secret:
:returns: user_id
"""
return User.objects.get(secret=user_secret).id

View File

@@ -13,6 +13,7 @@ from datetime import datetime
from django.shortcuts import render, redirect
from .utils import *
from django_tables2 import RequestConfig
from api.models import History
# }}} imports #
@@ -49,8 +50,14 @@ def display_history_table(request, user_secret):
:param user_secret: user secret used for identification
:return: renders the user history page
"""
context = get_secret_context(user_secret)
context.update(get_user_history(user_secret))
RequestConfig(request).configure(context['user_history_table'])
user_id = User.objects.get(secret=user_secret).id
user_history = History.objects.filter(user__exact=user_id).order_by('-timestamp')
history_table = HistoryTable(user_history)
history_table.exclude = ('id', 'user', 'track', )
RequestConfig(request).configure(history_table)
context = { 'user_history_table': history_table,
'user_id': user_id, }
return render(request, "graphs/user_history.html", context)