From: yomguy Date: Sun, 8 Apr 2012 01:23:34 +0000 (+0200) Subject: fix user list X-Git-Tag: 0.2~75 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=3d1f699e2c6ccde3541d7b79920cf8e3b37cdd85;p=teleforma.git fix user list --- diff --git a/teleforma/management/commands/teleforma-import-users.py b/teleforma/management/commands/teleforma-import-users.py index aac7ae97..ae2a5d08 100644 --- a/teleforma/management/commands/teleforma-import-users.py +++ b/teleforma/management/commands/teleforma-import-users.py @@ -1,6 +1,8 @@ from optparse import make_option from django.conf import settings from django.core.management.base import BaseCommand, CommandError +from django.contrib.auth.models import User +from django.template.defaultfilters import slugify from telemeta.models import * from telemeta.util.unaccent import unaccent from teleforma.models import * @@ -8,16 +10,50 @@ import logging import codecs import xlrd - class Command(BaseCommand): help = "Import users from a XLS file (see an example in example/data/" args = "path" first_row = 2 + admin_email = 'webmaster@parisson.com' def import_user(self, row): - last_name = row[0].value - first_name = row[1].value - print first_name, last_name + last_name = row[0].value + first_name = row[1].value + email = row[9].value + #FIXME: + email = self.admin_email + username = slugify(first_name)[0] + '.' + slugify(last_name) + + #FIXME: not for prod + user = User.objects.get(username=username) + user.delete() + + user, created = User.objects.get_or_create(username=username, first_name=first_name, + last_name=last_name, email=email) + + + if created: + student = Student.objects.filter(user=user) + if not student: + student = Student(user=user) + student.iej, c = IEJ.objects.get_or_create(name=row[2].value) + student.training, c = Training.objects.get_or_create(code=row[3].value) + student.procedure, c = Procedure.objects.get_or_create(code=row[4].value) + student.written_speciality, c = Speciality.objects.get_or_create(code=row[5].value) + student.oral_speciality, c = Speciality.objects.get_or_create(code=row[6].value) + student.oral_1, c = Oral.objects.get_or_create(code=row[7].value) + student.oral_2, c = Oral.objects.get_or_create(code=row[8].value) + student.category, c = Category.objects.get_or_create(name=row[15].value) + address = row[10].value + p_code = row[11].value + city = row[12].value + tel = row[13].value + date = row[14].value + + student.save() + print 'imported: ' + first_name + ' ' + last_name + ' ' + username + + def handle(self, *args, **options): file = args[0] @@ -27,7 +63,6 @@ class Command(BaseCommand): for i in range(self.first_row, len(col)): self.import_user(sheet.row(i)) - print "Done, imported %s users" % str(i) diff --git a/teleforma/models.py b/teleforma/models.py index e8832803..c645b6f1 100755 --- a/teleforma/models.py +++ b/teleforma/models.py @@ -274,6 +274,7 @@ class IEJ(Model): db_table = app_label + '_' + 'iej' verbose_name = _('IEJ') verbose_name_plural = _('IEJ') + ordering = ['name'] class Training(Model): @@ -287,7 +288,7 @@ class Training(Model): def __unicode__(self): - return self.name + return self.code class Meta: db_table = app_label + '_' + 'training' @@ -300,7 +301,7 @@ class Procedure(Model): code = CharField(_('code'), max_length=255) def __unicode__(self): - return self.name + return self.code class Meta: db_table = app_label + '_' + 'procedure' @@ -313,7 +314,7 @@ class Speciality(Model): code = CharField(_('code'), max_length=255) def __unicode__(self): - return self.name + return self.code class Meta: db_table = app_label + '_' + 'speciality' @@ -326,7 +327,7 @@ class Oral(Model): code = CharField(_('code'), max_length=255) def __unicode__(self): - return self.name + return self.code class Meta: db_table = app_label + '_' + 'oral' diff --git a/teleforma/templates/telemeta/base.html b/teleforma/templates/telemeta/base.html index edf7fc28..8c61487b 100644 --- a/teleforma/templates/telemeta/base.html +++ b/teleforma/templates/telemeta/base.html @@ -70,7 +70,7 @@ alt="Telemeta Powered"/>--> {% if user.is_authenticated %}
  • {% trans "Messages" %}{% if postman_unread_count %} ({{ postman_unread_count }}){% endif %}
  • -
  • {% trans "Users" %}
  • +
  • {% trans "Users" %}
  • {% trans "Advanced search" %}
  • diff --git a/teleforma/templates/telemeta/inc/user_list.html b/teleforma/templates/telemeta/inc/user_list.html index 7a4ca949..525b80ad 100644 --- a/teleforma/templates/telemeta/inc/user_list.html +++ b/teleforma/templates/telemeta/inc/user_list.html @@ -2,12 +2,28 @@ {% load telemeta_utils %} {% load teleforma_tags %} +{% if is_paginated %} + +{% endif %} +
    - + - + @@ -15,25 +31,26 @@ - + {% for user in users %} - - + + + {% if user.student.get %} {% with user.student.get as student %} - - - - - - - + + + + + + + {% endwith %} {% elif user.professor.get %} diff --git a/teleforma/templates/telemeta/users.html b/teleforma/templates/telemeta/users.html new file mode 100644 index 00000000..ff5bde51 --- /dev/null +++ b/teleforma/templates/telemeta/users.html @@ -0,0 +1,17 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} +{% load telemeta_utils %} + +{% block head_title %}{% trans "Users" %} - {{ block.super }}{% endblock %} + +{% block title %} + user {% trans "Users" %} +{% endblock %} + +{% block content %} + {% if users %} + {% include "telemeta/inc/user_list.html" %} + {% else %} +

    {% trans "No users" %}

    + {% endif %} +{% endblock %} diff --git a/teleforma/urls.py b/teleforma/urls.py index 2f028eb6..503410b1 100644 --- a/teleforma/urls.py +++ b/teleforma/urls.py @@ -57,6 +57,7 @@ urlpatterns = patterns('', # Postman url(r'^messages/', include('postman.urls')), + url(r'^all_users/$', UsersView.as_view(), name="teleforma-users"), # CSS+Images (FIXME: for developement only) url(r'^teleforma/css/(?P.*)$', 'django.views.static.serve', diff --git a/teleforma/views.py b/teleforma/views.py index da0a5c35..9e3bf748 100755 --- a/teleforma/views.py +++ b/teleforma/views.py @@ -24,6 +24,7 @@ from django.utils.translation import ugettext from django.contrib.auth.forms import UserChangeForm from django.core.exceptions import ObjectDoesNotExist from django.contrib.syndication.views import Feed +from django.core.paginator import Paginator from teleforma.models import * from telemeta.views.base import * @@ -116,3 +117,12 @@ class MediaView(DetailView): context['room'] = media.course.chat_room return context +class UsersView(ListView): + + model = User + template_name='telemeta/users.html' + context_object_name = 'users' + paginate_by = 12 + + def get_queryset(self): + return User.objects.all().order_by('last_name')
    {% trans "User"%}
    {% trans "Last Name"%} {% trans "First Name"%}{% trans "Last Name"%}{% trans "User"%} {% trans "Training"%} {% trans "IEJ"%} {% trans "Procedure"%}{% trans "Written spe"%} {% trans "Oral 1"%} {% trans "Oral 2"%}{% trans "Synthesis note"%}{% trans "Synthesis"%} {% trans "Messages"%}
    {{user.username}}{{ user.first_name }} {{ user.last_name }}{{ user.first_name }}{{user.username}}{{ student.training }}{{ student.iej }}{{ student.procedure }}{{ student.oral_speciality }}{{ student.written_speciality }}{{ student.oral_1 }}{{ student.oral_2 }}{{ student.training.code }}{{ student.iej.name }}{{ student.procedure.code }}{{ student.oral_speciality.code }}{{ student.written_speciality.code }}{{ student.oral_1.code }}{{ student.oral_2.code }}