# HG changeset patch # User ymh # Date 1339370264 -7200 # Node ID 8eea0d7de41cc92ad27f66b94d2ee3ceb02db813 # Parent b888750b6ae57e70645e24aa9326ea515f519445 add annotatin stats diff -r b888750b6ae5 -r 8eea0d7de41c web/tralalere/__init__.py --- a/web/tralalere/__init__.py Sat Jun 09 01:57:40 2012 +0200 +++ b/web/tralalere/__init__.py Mon Jun 11 01:17:44 2012 +0200 @@ -15,3 +15,4 @@ __version__ = get_version() + diff -r b888750b6ae5 -r 8eea0d7de41c web/tralalere/settings.py --- a/web/tralalere/settings.py Sat Jun 09 01:57:40 2012 +0200 +++ b/web/tralalere/settings.py Mon Jun 11 01:17:44 2012 +0200 @@ -113,6 +113,7 @@ 'ldt.ldt_utils.middleware.userprofile.LanguageMiddleware', 'ldt.security.middleware.SecurityMiddleware', 'ldt.api.middleware.pistonput.PistonPutMiddleware', + #'debug_toolbar.middleware.DebugToolbarMiddleware' ) ROOT_URLCONF = 'tralalere.urls' @@ -152,6 +153,7 @@ 'south', 'guardian', 'sorl.thumbnail', + #'debug_toolbar', # Uncomment the next line to enable admin documentation: # 'django.contrib.admindocs', ) @@ -304,5 +306,7 @@ # URL that handles the media served from MEDIA_ROOT. if not "MEDIA_URL" in locals(): MEDIA_URL = BASE_URL + 'static/media/' + +#INTERNAL_IPS = ('127.0.0.1',) diff -r b888750b6ae5 -r 8eea0d7de41c web/tralalere/templates/home.html --- a/web/tralalere/templates/home.html Sat Jun 09 01:57:40 2012 +0200 +++ b/web/tralalere/templates/home.html Mon Jun 11 01:17:44 2012 +0200 @@ -17,59 +17,41 @@

{{content.description}}

+ {% if content.tags_stats %} + {% if content.tags_stats.colors %} + {% endif %} + {% if content.tags_stats.emoticons %} + {% endif %} + {% endif %} {% endfor %} {% endblock %} diff -r b888750b6ae5 -r 8eea0d7de41c web/tralalere/views.py --- a/web/tralalere/views.py Sat Jun 09 01:57:40 2012 +0200 +++ b/web/tralalere/views.py Mon Jun 11 01:17:44 2012 +0200 @@ -1,13 +1,65 @@ from django.shortcuts import render_to_response from django.template import RequestContext -from ldt.ldt_utils.models import Content +from ldt.ldt_utils.models import Content, Segment +import operator +import math + +COLORS = ['red', 'yellow', 'green', 'blue'] +EMOTICONS = ['happy','unhappy','laughing','surprised'] +SCALES = [0.2,0.5,0.8,1] + def home(request): contents = Content.objects.filter(front_project__state = 2) - return render_to_response('home.html', {'contents': contents}, context_instance=RequestContext(request)) + tags_stats = {} + + for segment in Segment.objects.filter(content__in = contents): + c_tags = tags_stats.setdefault(segment.iri_id,{}) + for t in segment.tags.split(";"): + t = t.strip().lower() + if t: + c_tags[t] = c_tags.setdefault(t,0) + 1 + if t in COLORS: + c_tags['colors'] = c_tags.setdefault('colors',0) + 1 + if t in EMOTICONS: + c_tags['emoticons'] = c_tags.setdefault('emoticons',0) + 1 + tags = {} + for contentid, c_tags in tags_stats.iteritems(): + emoticons_stats = [] + for t in EMOTICONS: + if t in c_tags: + score = float(c_tags[t])/float(c_tags['emoticons']) + cat = int(len(EMOTICONS)*score) + scale = SCALES[cat] + width = int(50*scale) + emoticons_stats.append({'tag':t, 'score': score, 'cat':cat, 'scale': scale, 'width':width}) + emoticons_stats.sort(key=operator.itemgetter('score','tag'), reverse=True) + + colors_stats = [] + for t in COLORS: + if t in c_tags: + score = float(c_tags[t])/float(c_tags['colors']) + cat = int(len(COLORS)*score) + scale = SCALES[cat] + width = int(50*scale) + colors_stats.append({'tag':t, 'score': score, 'cat':cat, 'scale': scale, 'width':width}) + colors_stats.sort(key=operator.itemgetter('score','tag'), reverse=True) + + tags[contentid] = {'emoticons': emoticons_stats, 'colors': colors_stats} + + contents_list = [] + for content in contents: + if content.iri_id in tags: + tags_stats = tags[content.iri_id] + else: + tags_stats = None + content.tags_stats = tags_stats + contents_list.append(content) + return render_to_response('home.html', {'contents': contents_list}, context_instance=RequestContext(request)) + def player(request, contentid):