I updated several things over the weekend. I finished working on the Arches Login, Logout and the Dashboard. Rather than using the core template, I created my own and I used my own css.
Now the dashboard looks more cleaner, it has easier access and it's a bit more responsive. I will eventually get to the bootstrapping.
Here's a view of how the Admin Console looks right now:

After this I started working on the Logging Application. Initially I created the App normally ( Models->Forms->ModelAdmin). But unfortunately it did not work out. The thing was that, initially when there're no logs to load, the app would crash and give ProgrammingError.
Then I looked on  to have logs. But it's too hidden to be utilized.
Moreover, I felt that I should code the app myself ( It happens everytime I plan on using a pre-built app )
Then after quite research, I wrote the logging app.
The interface looks like this presently :
Here's the code, users might find it useful :

  1. #Logging App
  2. from django.contrib import admin
  3. from django.contrib.admin.models import LogEntry, ADDITION, CHANGE, DELETION #inbuilt logging for django
  4. from django.utils.html import escape
  5. from django.core.urlresolvers import reverse

  6. class LogEntryAdmin(admin.ModelAdmin):

  7. datehierarchy = 'actiontime' #for the time of logging

  8. readonlyfields = LogEntry.meta.getallfield_names() + \

  9. ['objectlink', 'actiondescription'] #get all log model tags

  10. list_filter = [

  11. 'user',
  12. 'content_type',
  13. 'action_flag'
  14. ]

  15. search_fields = [

  16. 'object_repr',
  17. 'change_message'
  18. ]

  19. list_display = [

  20. 'action_time',
  21. 'user',
  22. 'content_type',
  23. 'object_link',
  24. 'action_flag',
  25. 'action_description',
  26. 'change_message',
  27. ]
  28. # sort the tables accordingly
  29. def hasaddpermission(self, request):
  30. return False #deny creation of log :P

  31. def haschangepermission(self, request, obj=None):

  32. return request.user.is_superuser and request.method != 'POST' #admin can change logs

  33. def hasdeletepermission(self, request, obj=None):

  34. return False #logs cannot be deleted

  35. def object_link(self, obj):

  36. if obj.action_flag == DELETION:
  37. link = escape(obj.object_repr)
  38. else:
  39. ct = obj.content_type
  40. link = u'%s' % (
  41. reverse('admin:%s%schange' % (ct.app_label, ct.model),
  42. args=[obj.object_id]),
  43. escape(obj.object_repr),
  44. )
  45. return link
  46. objectlink.allowtags = True
  47. objectlink.adminorderfield = 'objectrepr'
  48. objectlink.shortdescription = u'object'

  49. def action_description(self, obj):

  50. action_names = {
  51. ADDITION: 'Addition',
  52. DELETION: 'Deletion',
  53. CHANGE: 'Change',
  54. }
  55. return actionnames[obj.actionflag]
  56. actiondescription.shortdescription = 'Action'

  57. admin.site.register(LogEntry, LogEntryAdmin)

https://bitbucket.org/q/django-simple-history