Mercurial > hg > savane-forge
changeset 318:8d7c891dec61
Start adding some stats for the homepage
author | Sylvain Beucler <beuc@beuc.net> |
---|---|
date | Wed, 18 Aug 2010 23:35:26 +0200 |
parents | b89bb28a8c80 |
children | 93a8358aca79 |
files | savane/svmain/admin.py savane/svmain/urls.py savane/svmain/views.py templates/index.html templates/svmain/homepage.html |
diffstat | 5 files changed, 90 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/savane/svmain/admin.py +++ b/savane/svmain/admin.py @@ -38,7 +38,7 @@ ('Savane', {'fields': ('status', 'spamscore', 'gpg_key', 'gpg_key_count', - 'email_hide', 'timezone', 'theme',)}), + 'email_hide', 'timezone',)}), ) list_display = ('user', 'status') list_filter = ('status',)
--- a/savane/svmain/urls.py +++ b/savane/svmain/urls.py @@ -32,9 +32,8 @@ urlpatterns = patterns ('',) urlpatterns += patterns ('', - url(r'^$', 'django.views.generic.simple.direct_to_template', - { 'template' : 'index.html', - 'extra_context' : { 'has_left_menu': False } }, + url(r'^$', views.homepage, + { }, name='homepage'), # TODO: add a web interface to edit some static content (using Django template notation?) url(r'^contact/$', 'django.views.generic.simple.direct_to_template',
--- a/savane/svmain/views.py +++ b/savane/svmain/views.py @@ -74,6 +74,25 @@ # Main ## +@render_to('svmain/homepage.html') +def homepage(request): + group_confs_obj = svmain_models.GroupConfiguration.objects.order_by('name') + group_confs = [] + for conf in group_confs_obj: + group_confs.append({'count' : auth_models.Group.objects \ + .filter(svgroupinfo__type=conf,svgroupinfo__status='A') \ + .count(), + 'conf' : conf}) + # nb_users and nb_groups as string, because the |add: template + # filter only accepts strings. + context = { + 'nb_users' : str(auth_models.User.objects.count()), + 'nb_groups' : str(auth_models.Group.objects.count()), + 'nb_pending' : str(999), # TODO + 'group_confs' : group_confs, + } + return context + def group_join(request, slug): g = get_object_or_404(auth_models.Group, name=slug) if svmain_models.Membership.objects.filter(user=request.user, group=g).count():
deleted file mode 100644 --- a/templates/index.html +++ /dev/null @@ -1,31 +0,0 @@ -{% extends "base.html" %} - -{% block top %}{% endblock %} - -{% block content %} -<div class="intro"> -<!-- intro --> -Intro -<!-- /intro --> -</div> - -<div class="news"> -<!-- news --> -News -<!-- /news --> -</div> - -<div class="stats"> -<!-- stats --> -Stats -<!-- /stats --> -</div> -{% endblock %} - -{% comment %} -Local Variables: ** -mode: django-html ** -tab-width: 4 ** -indent-tabs-mode: nil ** -End: ** -{% endcomment %}
new file mode 100644 --- /dev/null +++ b/templates/svmain/homepage.html @@ -0,0 +1,68 @@ +{% extends "base.html" %} +{% load i18n %} + +{% block top %}{% endblock %} + +{% block content %} + +<div class="indexright"> +<!-- stats --> + <div class="box"> + <div class="boxtitle"><a class="sortbutton" href="TODO"> + {% blocktrans %}{{site_name}} statistics{% endblocktrans %}</a></div> + <div class="{% cycle 'boxitemalt' 'boxitem' as rowcolor %}"> + {% blocktrans count nb_users as count and '<strong>'|add:nb_users|add:'</strong>'|safe as html %}{{html}} registered user{% plural %}{{html}} registered users{% endblocktrans %} + </div> + <div class="{% cycle rowcolor %}"> + {% blocktrans count nb_groups as count and '<strong>'|add:nb_groups|add:'</strong>'|safe as html %}{{html}} hosted project{% plural %}{{html}} hosted projects{% endblocktrans %} + </div> + {% for conf in group_confs %} + <div class="{% cycle rowcolor %}"> + - <a href="{% url savane:svmain:group_list %}?group_configuration=TODO">{{conf.count}} {{conf.conf.name}}</a> + </div> + {% endfor %} + <div class="{% cycle rowcolor %}">+ + {% blocktrans count nb_pending as count %}{{count}} registration pending{% plural %}{{count}} registrations pending{% endblocktrans %} + </div> + </div> + + <div class="box"> + <div class="boxtitle">{% trans "Help wanted" %}</div> + </div> + + <div class="box"> + <div class="boxtitle">{% trans "Most popular items" %}</div> + </div> + + <div class="box"> + <div class="boxtitle">{% blocktrans %}Newest %s1 projects{% endblocktrans %}</div> + </div> + + <div class="box"> + <div class="boxtitle">{% blocktrans %}Newest %s2 projects{% endblocktrans %}</div> + </div> +<!-- /stats --> +</div> + + +<div class="intro"> +<!-- intro --> +Intro +<!-- /intro --> +</div> + +<div class="news"> +<!-- news --> +News +<!-- /news --> +</div> + +{% endblock %} + +{% comment %} +Local Variables: ** +mode: django-html ** +tab-width: 4 ** +indent-tabs-mode: nil ** +End: ** +{% endcomment %}