Gestion des contacts,listes du bureau; première approche
authorWilly MANGA <willy.manga@auf.org>
Sat, 10 Sep 2016 22:43:48 +0000 (23:43 +0100)
committerWilly MANGA <willy.manga@auf.org>
Sat, 10 Sep 2016 22:43:48 +0000 (23:43 +0100)
46 files changed:
projets_django/bacgl_listes/bacgl/__init__.py [new file with mode: 0644]
projets_django/bacgl_listes/bacgl/settings.py [new file with mode: 0644]
projets_django/bacgl_listes/bacgl/urls.py [new file with mode: 0644]
projets_django/bacgl_listes/bacgl/wsgi.py [new file with mode: 0644]
projets_django/bacgl_listes/db.sqlite3 [new file with mode: 0644]
projets_django/bacgl_listes/listes/__init__.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/admin.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/migrations/0001_initial.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/migrations/0002_listes_abonnes.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/migrations/0003_auto_20160902_1034.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/migrations/0004_remove_participation_date_suppression.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/migrations/0005_auto_20160902_1143.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/migrations/0006_auto_20160902_1245.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/migrations/0007_auto_20160902_1247.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/migrations/__init__.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/models.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/adel.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/admin/base_site.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/base.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/base0.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/index.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/infoabonne.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/infolistes.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/infousager.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/listes/index.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/templates/pied.html [new file with mode: 0644]
projets_django/bacgl_listes/listes/tests.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/urls.py [new file with mode: 0644]
projets_django/bacgl_listes/listes/views.py [new file with mode: 0644]
projets_django/bacgl_listes/listes2/__init__.py [new file with mode: 0644]
projets_django/bacgl_listes/listes2/admin.py [new file with mode: 0644]
projets_django/bacgl_listes/listes2/models.py [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/adel.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/admin/base_site.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/base.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/base0.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/index.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/infoabonne.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/infolistes.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/infousager.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/listes/index.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/templates/pied.html [new file with mode: 0644]
projets_django/bacgl_listes/listes2/tests.py [new file with mode: 0644]
projets_django/bacgl_listes/listes2/urls.py [new file with mode: 0644]
projets_django/bacgl_listes/listes2/views.py [new file with mode: 0644]
projets_django/bacgl_listes/manage.py [new file with mode: 0755]

diff --git a/projets_django/bacgl_listes/bacgl/__init__.py b/projets_django/bacgl_listes/bacgl/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/projets_django/bacgl_listes/bacgl/settings.py b/projets_django/bacgl_listes/bacgl/settings.py
new file mode 100644 (file)
index 0000000..76f3fb0
--- /dev/null
@@ -0,0 +1,87 @@
+"""
+Django settings for bacgl project.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/1.7/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/1.7/ref/settings/
+"""
+
+# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+import os
+BASE_DIR = os.path.dirname(os.path.dirname(__file__))
+
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = '*$b!n7_zf$_82u@z$+cdtbe!4dd1v#xq2x+8fo9g4ct4m^9lrd'
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+TEMPLATE_DEBUG = True
+TEMPLATE_DIRS = [os.path.join(BASE_DIR, 'templates')]
+
+ALLOWED_HOSTS = []
+
+
+# Application definition
+
+INSTALLED_APPS = (
+    'listes2',
+    'listes',
+    'django.contrib.admin',
+    'django.contrib.auth',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+    'django.contrib.messages',
+    'django.contrib.staticfiles',
+    'auf',
+)
+
+MIDDLEWARE_CLASSES = (
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.middleware.common.CommonMiddleware',
+    'django.middleware.csrf.CsrfViewMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
+    'django.contrib.messages.middleware.MessageMiddleware',
+    'django.middleware.clickjacking.XFrameOptionsMiddleware',
+)
+
+ROOT_URLCONF = 'bacgl.urls'
+
+WSGI_APPLICATION = 'bacgl.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/1.7/ref/settings/#databases
+
+DATABASES = {
+    'default': {
+        'ENGINE': 'django.db.backends.sqlite3',
+        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+    }
+}
+
+# Internationalization
+# https://docs.djangoproject.com/en/1.7/topics/i18n/
+
+LANGUAGE_CODE = 'fr-fr'
+
+TIME_ZONE = 'Africa/Douala'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/1.7/howto/static-files/
+
+STATIC_URL = '/static/'
diff --git a/projets_django/bacgl_listes/bacgl/urls.py b/projets_django/bacgl_listes/bacgl/urls.py
new file mode 100644 (file)
index 0000000..9ad6ce3
--- /dev/null
@@ -0,0 +1,12 @@
+from django.conf.urls import patterns, include, url
+from django.contrib import admin
+
+urlpatterns = patterns('',
+    # Examples:
+    # url(r'^$', 'bacgl.views.home', name='home'),
+    # url(r'^blog/', include('blog.urls')),
+
+    url(r'^listes2/', include('listes2.urls')),
+#    url(r'^listes/', include('listes.urls')),
+    url(r'^admin/', include(admin.site.urls)),
+)
diff --git a/projets_django/bacgl_listes/bacgl/wsgi.py b/projets_django/bacgl_listes/bacgl/wsgi.py
new file mode 100644 (file)
index 0000000..716d4cf
--- /dev/null
@@ -0,0 +1,14 @@
+"""
+WSGI config for bacgl project.
+
+It exposes the WSGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/
+"""
+
+import os
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bacgl.settings")
+
+from django.core.wsgi import get_wsgi_application
+application = get_wsgi_application()
diff --git a/projets_django/bacgl_listes/db.sqlite3 b/projets_django/bacgl_listes/db.sqlite3
new file mode 100644 (file)
index 0000000..25af0ab
Binary files /dev/null and b/projets_django/bacgl_listes/db.sqlite3 differ
diff --git a/projets_django/bacgl_listes/listes/__init__.py b/projets_django/bacgl_listes/listes/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/projets_django/bacgl_listes/listes/admin.py b/projets_django/bacgl_listes/listes/admin.py
new file mode 100644 (file)
index 0000000..8f9b6b3
--- /dev/null
@@ -0,0 +1,24 @@
+from django.contrib import admin
+from listes.models import Usager,Adel,Listes,Participation
+
+class UsagerAdmin(admin.ModelAdmin):
+    list_display = (
+            'nom','genre','paysOrigine','etablissement','telephone'
+            )
+    search_fields = ['nom','paysOrigine','etablissement']
+
+class AdelAdmin(admin.ModelAdmin):
+    list_display = ('proprietaire','adresse')
+
+class ListeAdmin(admin.ModelAdmin):
+    list_display = ('nom','description','adresse','gestionnaire')
+
+class ParticipationAdmin(admin.ModelAdmin):
+    list_display = ('liste','abonne','date_inscription')
+    list_filter = ['liste','date_inscription']
+    search_fields = ['abonne__adresse','abonne__proprietaire__nom']
+
+admin.site.register(Usager,UsagerAdmin)
+admin.site.register(Adel,AdelAdmin)
+admin.site.register(Listes,ListeAdmin)
+admin.site.register(Participation,ParticipationAdmin)
diff --git a/projets_django/bacgl_listes/listes/migrations/0001_initial.py b/projets_django/bacgl_listes/listes/migrations/0001_initial.py
new file mode 100644 (file)
index 0000000..66ef329
--- /dev/null
@@ -0,0 +1,74 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Adel',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('date_insertion', models.DateField(auto_now_add=True)),
+                ('adresse', models.EmailField(max_length=75)),
+            ],
+            options={
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='Listes',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('nom', models.CharField(max_length=150)),
+                ('description', models.TextField(blank=True)),
+                ('adresse', models.EmailField(max_length=75)),
+                ('date_creation', models.DateField(auto_now_add=True)),
+                ('gestionnaire', models.CharField(max_length=200)),
+                ('gestionnaire2', models.CharField(max_length=200, blank=True)),
+            ],
+            options={
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='Participation',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('date_inscription', models.DateTimeField(auto_now_add=True)),
+                ('date_suppression', models.DateTimeField(blank=True)),
+                ('adresse_electronique', models.ForeignKey(to='listes.Adel')),
+                ('liste', models.ForeignKey(to='listes.Listes')),
+            ],
+            options={
+            },
+            bases=(models.Model,),
+        ),
+        migrations.CreateModel(
+            name='Usager',
+            fields=[
+                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
+                ('nom', models.CharField(max_length=250)),
+                ('genre', models.CharField(max_length=5, choices=[(b'H', b'Homme'), (b'F', b'Femme')])),
+                ('paysOrigine', models.CharField(max_length=100, blank=True)),
+                ('etablissement', models.CharField(max_length=250, blank=True)),
+                ('specialite', models.CharField(max_length=250, blank=True)),
+                ('note', models.TextField(blank=True)),
+                ('telephone', models.TextField(blank=True)),
+            ],
+            options={
+            },
+            bases=(models.Model,),
+        ),
+        migrations.AddField(
+            model_name='adel',
+            name='proprietaire',
+            field=models.ForeignKey(to='listes.Usager'),
+            preserve_default=True,
+        ),
+    ]
diff --git a/projets_django/bacgl_listes/listes/migrations/0002_listes_abonnes.py b/projets_django/bacgl_listes/listes/migrations/0002_listes_abonnes.py
new file mode 100644 (file)
index 0000000..e11f886
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('listes', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='listes',
+            name='abonnes',
+            field=models.ManyToManyField(to='listes.Adel', verbose_name=b'liste abonn\xc3\xa9s'),
+            preserve_default=True,
+        ),
+    ]
diff --git a/projets_django/bacgl_listes/listes/migrations/0003_auto_20160902_1034.py b/projets_django/bacgl_listes/listes/migrations/0003_auto_20160902_1034.py
new file mode 100644 (file)
index 0000000..95a0a1f
--- /dev/null
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('listes', '0002_listes_abonnes'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='participation',
+            old_name='adresse_electronique',
+            new_name='abonne',
+        ),
+        migrations.RemoveField(
+            model_name='listes',
+            name='abonnes',
+        ),
+    ]
diff --git a/projets_django/bacgl_listes/listes/migrations/0004_remove_participation_date_suppression.py b/projets_django/bacgl_listes/listes/migrations/0004_remove_participation_date_suppression.py
new file mode 100644 (file)
index 0000000..bfb7c86
--- /dev/null
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('listes', '0003_auto_20160902_1034'),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name='participation',
+            name='date_suppression',
+        ),
+    ]
diff --git a/projets_django/bacgl_listes/listes/migrations/0005_auto_20160902_1143.py b/projets_django/bacgl_listes/listes/migrations/0005_auto_20160902_1143.py
new file mode 100644 (file)
index 0000000..54575b1
--- /dev/null
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('listes', '0004_remove_participation_date_suppression'),
+    ]
+
+    operations = [
+        migrations.AlterUniqueTogether(
+            name='participation',
+            unique_together=set([('liste', 'abonne')]),
+        ),
+    ]
diff --git a/projets_django/bacgl_listes/listes/migrations/0006_auto_20160902_1245.py b/projets_django/bacgl_listes/listes/migrations/0006_auto_20160902_1245.py
new file mode 100644 (file)
index 0000000..d182556
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('listes', '0005_auto_20160902_1143'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='usager',
+            name='paysOrigine',
+            field=models.CharField(blank=True, max_length=18, choices=[(b'bi', b'Burundi'), (b'bw', b'Botswana'), (b'cm', b'Cameroun'), (b'cf', b'Centrafrique'), (b'cd', b'Congo'), (b'cd', b'RDC'), (b'ga', b'Gabon'), (b'mw', b'Malawi'), (b'rw', b'Rwanda'), (b'td', b'Tchad'), (b'tz', b'Tanzanie'), (b'ao', b'Angola')]),
+            preserve_default=True,
+        ),
+    ]
diff --git a/projets_django/bacgl_listes/listes/migrations/0007_auto_20160902_1247.py b/projets_django/bacgl_listes/listes/migrations/0007_auto_20160902_1247.py
new file mode 100644 (file)
index 0000000..e7619c8
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('listes', '0006_auto_20160902_1245'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='adel',
+            name='adresse',
+            field=models.EmailField(unique=True, max_length=75),
+            preserve_default=True,
+        ),
+    ]
diff --git a/projets_django/bacgl_listes/listes/migrations/__init__.py b/projets_django/bacgl_listes/listes/migrations/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/projets_django/bacgl_listes/listes/models.py b/projets_django/bacgl_listes/listes/models.py
new file mode 100644 (file)
index 0000000..c7def13
--- /dev/null
@@ -0,0 +1,74 @@
+# -*- coding:utf-8 -*-
+
+from django.db import models
+
+# Create your models here.
+class Usager(models.Model):
+
+    SEXE = (
+            ("H","Homme"),
+            ("F", "Femme"),
+            )
+    PAYS = (
+            ("bi","Burundi"),
+            ("bw","Botswana"),
+            ("cm","Cameroun"),
+            ("cf","Centrafrique"),
+            ("cd","Congo"),
+            ("cd","RDC"),
+            ("ga","Gabon"),
+            ("mw","Malawi"),
+            ("rw","Rwanda"),
+            ("td","Tchad"),
+            ("tz","Tanzanie"),
+            ("ao","Angola"),
+            )
+
+    nom = models.CharField(max_length=250)
+    genre = models.CharField(max_length=5,choices=SEXE)
+    paysOrigine = models.CharField(max_length=18,choices=PAYS,blank=True)
+    etablissement = models.CharField(max_length=250,blank=True)
+    specialite = models.CharField(max_length=250,blank=True)
+    note = models.TextField(blank=True)
+    telephone = models.TextField(blank=True)
+
+    def __unicode__(self):
+        return self.nom
+
+
+class Adel(models.Model):
+    proprietaire = models.ForeignKey(Usager)
+    date_insertion = models.DateField(auto_now_add=True)
+    adresse = models.EmailField(unique=True)
+
+    def __unicode__(self):
+        return self.adresse
+
+class Listes(models.Model):
+    nom = models.CharField(max_length=150)
+    description = models.TextField(blank=True)
+    adresse = models.EmailField()
+    date_creation = models.DateField(auto_now_add=True)
+#    abonnes = models.ManyToManyField(Adel, verbose_name="liste abonnés")
+    gestionnaire = models.CharField(max_length=200)
+    gestionnaire2 = models.CharField(max_length=200,blank=True)
+
+    def __unicode__(self):
+        return self.nom
+
+
+class Participation(models.Model):
+    liste = models.ForeignKey(Listes)
+    abonne = models.ForeignKey(Adel)
+    date_inscription = models.DateTimeField(auto_now_add=True)
+#FIXME comprendre pourquoi ça ne marche pas
+#    date_suppression = models.DateTimeField(blank=True,null=True)
+
+    class Meta:
+        unique_together = (("liste","abonne"))
+
+
+    def __unicode__(self):
+        return "%s | %s" % \
+                (self.liste,self.abonne,\
+                )
diff --git a/projets_django/bacgl_listes/listes/templates/adel.html b/projets_django/bacgl_listes/listes/templates/adel.html
new file mode 100644 (file)
index 0000000..8d53b83
--- /dev/null
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+
+
+{% block content %}
+
+<h3>Informations sur l'adresse {{adel.adresse}}</h3>
+
+<ul>
+  <li>Nom : {{ad.nom}}</li>
+  <li>Genre : {{ad.genre}}</li>
+  <li>Pays d'origine : {{ad.paysOrigine}}</li>
+  <li>Etablissement : {{ad.etablissement}}</li>
+  <li>Spécialité : {{ad.specialite}}</li>
+  <li>Téléphone : {{ad.telephone}}</li>
+</ul>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes/templates/admin/base_site.html b/projets_django/bacgl_listes/listes/templates/admin/base_site.html
new file mode 100644 (file)
index 0000000..16f1d8f
--- /dev/null
@@ -0,0 +1,9 @@
+{% extends "admin/base.html" %}
+
+{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
+
+{% block branding %}
+<h1 id="site-name"><a href="{% url 'admin:index' %}">Gestion de listes du bureau</a></h1>
+{% endblock %}
+
+{% block nav-global %}{% endblock %}
diff --git a/projets_django/bacgl_listes/listes/templates/base.html b/projets_django/bacgl_listes/listes/templates/base.html
new file mode 100644 (file)
index 0000000..b23dd48
--- /dev/null
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+        <title>{% block title %} BACGL - Gestion des listes {% endblock %}</title>
+  <link rel="stylesheet"  type="text/css" href="{{ STATIC_URL }}css/base.css">
+
+  <body>
+          <div id="side">
+                  {% block sidebar %}
+
+                  <ul>
+                          {% if not user.is_authenticated %}
+                                 <li><a href="/connexion">Ouvrir une session</a></li>
+                          {% else %}
+                                 Bienvenue {{ user.username }}
+                                 <li><a href="/accueil">Accueil</li>
+                                  {% if user.is_staff %}
+                                         <li><a href="/admin" target="_blank">Interface d'administration</li>
+                                         <li><a href="/recherche/">Formulaire recherche</li>
+                                  {% endif %}
+                          <li>
+                                   <a href="/deconnexion">Se déconnecter</a> <br />
+                            {% endif %}
+                        </ul>
+
+               {% endblock %}
+                </div>
+
+          <div id="content">
+                  {% block content %}{% endblock %}
+          </div>
+          {% block piedDePage %}
+
+          <hr>
+           <a href="/listes/">Accueil</a> |<a
+              href="/listes/infoabonne">Adresses inscrites</a> | 
+            <a href="/listes/infousager/">Usagers repertoriés</a> | <a href="/admin/">Administration</a>
+        
+         {% endblock %}
+  </body>
+
+</html>
diff --git a/projets_django/bacgl_listes/listes/templates/base0.html b/projets_django/bacgl_listes/listes/templates/base0.html
new file mode 100644 (file)
index 0000000..fea2e64
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+        <title>{% block title %} BACGL - Gestion des listes {% endblock %}</title>
+  <link rel="stylesheet"  type="text/css" href="{{ STATIC_URL }}css/base.css">
+
+  <body>
+          <div id="side">
+                  {% block sidebar %}
+
+                  <ul>
+                          {% if not user.is_authenticated %}
+                          <li><a href="/connexion">Ouvrir une sessions</a></li>
+                          {% else %}
+                          Bienvenue {{ user.username }}
+                          <li><a href="/accueil">Accueil</li>
+                                  {% if user.is_staff %}
+                          <li><a href="/admin" target="_blank">Interface d'administration</li>
+                          <li><a href="/recherche/">Validation - recherche de code</li>
+                                  {% endif %}
+                          <li>
+                            <a href="/deconnexion">Se déconnecter</a> <br />
+                            {% endif %}
+                      <li><a href="/saisie/bilan/">Bilan des saisies</a></li>
+                        </ul>
+
+                        {% endblock %}
+                </div>
+
+          <div id="content">
+                  {% block content %}{% endblock %}
+          </div>
+  </body>
+</html>
diff --git a/projets_django/bacgl_listes/listes/templates/index.html b/projets_django/bacgl_listes/listes/templates/index.html
new file mode 100644 (file)
index 0000000..8252ec9
--- /dev/null
@@ -0,0 +1,35 @@
+{% extends "base.html" %}
+
+{% block content %}
+{% if listes_dispo %}
+
+<h3>Listes existantes</h3>
+  <ul>
+    {% for liste in listes_dispo %}
+    <li><a href="/listes/infoliste/{{liste.id}}">{{liste.nom }}</a></li>
+    {% endfor %}
+ </ul>
+
+    {% else %}
+
+      <p>Pas de listes trouvées !.</p>
+
+{% endif %}
+
+{% if etab_dispo %}
+
+<h3>Etablissements recensés</h3>
+  <ul>
+    {% for etab in etab_dispo %}
+      <li>{{etab }}</li>
+    {% endfor %}
+ </ul>
+
+    {% else %}
+
+      <p>Pas d'établissements trouvés !.</p>
+
+{% endif %}
+Consultez <a href="/listes/infoabonne/">les adresses électroniques</a>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes/templates/infoabonne.html b/projets_django/bacgl_listes/listes/templates/infoabonne.html
new file mode 100644 (file)
index 0000000..46cdfb8
--- /dev/null
@@ -0,0 +1,14 @@
+{% extends "base.html" %}
+
+
+{% block content %}
+
+<h3>Adresses présentes</h3>
+Total: {{ab|length}}
+<ul>
+{% for a in ab %}
+<li><a href="/listes/adel/{{a.id}}">{{a}}</a></li> 
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes/templates/infolistes.html b/projets_django/bacgl_listes/listes/templates/infolistes.html
new file mode 100644 (file)
index 0000000..f1b41bc
--- /dev/null
@@ -0,0 +1,18 @@
+{% extends "base.html" %}
+
+
+{% block content %}
+yello :)
+
+Liste à traiter : {{listes_id}}
+<h3>Liste {{liste.nom}}</h3>
+<p>Description: {{liste.description}}.<br>
+Nombre d'abonnés : {{listing|length}}<br>
+Les abonné(e)s à la liste sont : </p>
+<ul>
+{% for liste in listing %}
+<li>{{liste}}</li> 
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes/templates/infousager.html b/projets_django/bacgl_listes/listes/templates/infousager.html
new file mode 100644 (file)
index 0000000..1c2301d
--- /dev/null
@@ -0,0 +1,28 @@
+{% extends "base.html" %}
+
+
+{% block content %}
+
+<h3>Usagers repertoriés</h3>
+Total: {{us|length}}
+<table border="1">
+  <tr>
+    <td>Nom</td>
+    <td>Genre</td>
+    <td>Pays</td>
+    <td>Etablissement</td>
+    <td>Spécialité</td>
+    <td>Téléphone</td>
+  </tr>
+{% for a in us %}
+<tr><td>{{a.nom}}</td>
+  <td> {{a.genre}} </td>
+  <td>{{a.paysOrigine }}</td>
+  <td>{{a.etablissement}}</td> 
+  <td>{{a.specialite}}</td> 
+  <td>{{a.telephone}}</td> 
+</tr>
+{% endfor %}
+</table>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes/templates/listes/index.html b/projets_django/bacgl_listes/listes/templates/listes/index.html
new file mode 100644 (file)
index 0000000..5b6db98
--- /dev/null
@@ -0,0 +1,15 @@
+oui, c'est moi :)
+nessssssssssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaa :P
+{% if listes_dispo %}
+
+  <ul>
+    {% for liste in listes_dispo %}
+      <li>{{etab_dispo.etablissement }}</li>
+    {% endfor %}
+ </ul>
+
+    {% else %}
+
+      <p>Pas d'établissements trouvés !.</p>
+
+{% endif %}
diff --git a/projets_django/bacgl_listes/listes/templates/pied.html b/projets_django/bacgl_listes/listes/templates/pied.html
new file mode 100644 (file)
index 0000000..952682e
--- /dev/null
@@ -0,0 +1,8 @@
+{% extends "base.html" %}
+
+{% block piedDePage %}
+<hr>
+
+<a href="/">Accueil</a>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes/tests.py b/projets_django/bacgl_listes/listes/tests.py
new file mode 100644 (file)
index 0000000..7ce503c
--- /dev/null
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/projets_django/bacgl_listes/listes/urls.py b/projets_django/bacgl_listes/listes/urls.py
new file mode 100644 (file)
index 0000000..6f0a67f
--- /dev/null
@@ -0,0 +1,12 @@
+from django.conf.urls import patterns, url
+
+from listes import views
+
+urlpatterns = patterns('',
+        url(r'^$', views.index, name='index'),
+        url(r'^adel/(?P<Adel_id>\d+)$', views.adresseE, name='adresseE'),
+        url(r'^infousager/$', views.infoUsager,name='infoUsager'),
+        url(r'^infoabonne/$', views.infoAbonne,
+            name='infoAbonne'),
+        url(r'^infoliste/(?P<Listes_id>\d+)/$', views.infoListes, name='infoListes'),
+        )
diff --git a/projets_django/bacgl_listes/listes/views.py b/projets_django/bacgl_listes/listes/views.py
new file mode 100644 (file)
index 0000000..4247e5a
--- /dev/null
@@ -0,0 +1,94 @@
+# -*- coding:utf-8 -*-
+
+from django.shortcuts import render,render_to_response
+from django.template import RequestContext
+from django.http import HttpResponse
+
+from listes.models import Listes,Usager,Participation,Adel
+
+# Create your views here.
+
+#TODO voir pour chaque liste les adresses abonnées
+# Participation.objects.filter(liste__id=x)
+
+#TODO pour chaque Adel je veux les infos sur l'usager
+
+def index(request):
+    """"
+    Page d'accueil du site
+    """
+
+    etab_dispo = []
+    listes_dispo = Listes.objects.order_by('nom')
+
+    for etab in Usager.objects.all():
+        #ne pas considérer les cellules vides
+        if etab.etablissement == '' :
+            pass
+        else : etab_dispo.append(etab.etablissement)
+
+    return render_to_response('index.html',
+            {'etab_dispo': etab_dispo,
+                'listes_dispo':listes_dispo,
+                },
+            context_instance=RequestContext(request))
+
+#    return HttpResponse('bonjour à vous')
+
+def infoListes(request,Listes_id):
+    """
+    Toutes les infos sur chaque liste:
+    Nom de la liste,description,abonnés
+    """
+
+    liste = Listes.objects.get(pk=Listes_id)
+
+    li =\
+    Participation.objects.filter(liste__id=Listes_id).order_by('abonne__adresse')
+
+    return  render_to_response('infolistes.html',
+            {'listes_id':Listes_id,
+                'listing':li,
+                'liste':liste,
+                },
+            context_instance=RequestContext(request))
+
+def infoAbonne(request):
+    """
+    Disposer des infos sur les différentes adresses 
+    électroniques
+    """
+
+    ab = Adel.objects.all().order_by('adresse')
+
+    return render_to_response('infoabonne.html',
+            {'ab' : ab,
+                },
+            context_instance=RequestContext(request))
+
+def adresseE(request,Adel_id):
+    """
+    Tout ce qu'on peut fournir comme info sur une adel
+    """
+
+    ad = Usager.objects.get(pk=Adel_id)
+    adel = Adel.objects.get(pk=Adel_id)
+
+    return render_to_response('adel.html',
+            {'ad':ad,
+                'adel':adel,
+                },
+            context_instance=RequestContext(request))
+
+def infoUsager(request):
+    """
+    Tout ce qu'il faut savoir sur les personnes
+    enregistrées
+    """
+
+    us = Usager.objects.all().order_by('nom')
+
+    return render_to_response('infousager.html',
+            {'us':us,
+                },
+            context_instance=RequestContext(request))
diff --git a/projets_django/bacgl_listes/listes2/__init__.py b/projets_django/bacgl_listes/listes2/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/projets_django/bacgl_listes/listes2/admin.py b/projets_django/bacgl_listes/listes2/admin.py
new file mode 100644 (file)
index 0000000..212acef
--- /dev/null
@@ -0,0 +1,12 @@
+from django.contrib import admin
+from listes2.models import Usager,Adel,Listes,Abonnement
+from listes2.models import Pays,Specialite,Etablissement,Scolarite
+
+admin.site.register(Usager)
+admin.site.register(Adel)
+admin.site.register(Listes)
+admin.site.register(Abonnement)
+admin.site.register(Pays)
+admin.site.register(Specialite)
+admin.site.register(Etablissement)
+admin.site.register(Scolarite)
diff --git a/projets_django/bacgl_listes/listes2/models.py b/projets_django/bacgl_listes/listes2/models.py
new file mode 100644 (file)
index 0000000..8e06417
--- /dev/null
@@ -0,0 +1,127 @@
+# -*- coding:utf-8 -*-
+
+from django.db import models
+
+# Create your models here.
+class Pays(models.Model):
+
+    PAYS = (
+            ("bi","Burundi"),
+            ("bw","Botswana"),
+            ("cm","Cameroun"),
+            ("cf","Centrafrique"),
+            ("cd","Congo"),
+            ("cd","RDC"),
+            ("ga","Gabon"),
+            ("mw","Malawi"),
+            ("rw","Rwanda"),
+            ("td","Tchad"),
+            ("tz","Tanzanie"),
+            ("ao","Angola"),
+            )
+
+    nom = models.CharField(max_length=20,unique=True)
+
+    def __unicode__(self):
+        return  self.nom
+
+
+class Specialite(models.Model):
+    SPEC = (
+            ('linguistique','linguistique'),
+            ('litterature_francaise','litterature Française'),
+            ('litterature_comparee','littérature comparée'),
+            ('semiotique','Sémiotique'),
+            ('sciences_du_language','Sciences du langage'),
+            ('stylistique_francaise','stylistique française'),
+            ('grammaire_du_francais','Grammaire du français'),
+            ('sociolinguistique','Sociolinguistique'),
+            )
+    intitule = models.CharField(max_length=150,unique=True)
+
+    def __unicode__(self):
+        return self.intitule
+
+
+class Usager(models.Model):
+
+    SEXE = (
+            ("H","Homme"),
+            ("F", "Femme"),
+            )
+
+    nom = models.CharField(max_length=250)
+    genre = models.CharField(max_length=5,choices=SEXE)
+    paysOrigine = models.ForeignKey(Pays)
+#    etablissement = models.manyToManyField(Etablissement,blank=True)
+    specialite = models.ForeignKey(Specialite,blank=True)
+    commentaire = models.TextField(blank=True)
+    telephone = models.TextField(blank=True)
+
+    def __unicode__(self):
+        return self.nom
+
+class Etablissement(models.Model):
+    nom = models.CharField(max_length=250)
+    adresse = models.TextField(blank=True)
+    pays = models.ForeignKey(Pays)
+
+    def __unicode__(self):
+        return  self.nom
+
+
+class Scolarite(models.Model):
+    """
+    Regrouper le moment où un usager X s'inscrit à une
+    université Y
+    """
+    usager = models.ForeignKey(Usager)
+    etablissement = models.ForeignKey(Etablissement)
+    periode = models.DateField(blank=True)
+
+    class Meta:
+        unique_together = (("usager","etablissement"))
+
+    def __unicode__(self):
+        return u"%s" % self.etablissement
+
+
+class Adel(models.Model):
+    proprietaire = models.ForeignKey(Usager)
+    date_insertion = models.DateField(auto_now_add=True)
+    adresse = models.EmailField(unique=True)
+
+    def __unicode__(self):
+        return self.adresse
+
+class Listes(models.Model):
+    nom = models.CharField(max_length=150)
+    description = models.TextField(blank=True)
+    adresse = models.EmailField(default='@listes.cm.auf.org')
+    date_creation = models.DateField(auto_now_add=True)
+#    abonnes = models.ManyToManyField(Adel, verbose_name="liste abonnés")
+    gestionnaire = models.CharField(max_length=200)
+    gestionnaire2 = models.CharField(max_length=200,blank=True)
+
+    def __unicode__(self):
+        return self.nom
+
+
+class Abonnement(models.Model):
+    """
+    L'ensemble des listes et des adresses électroniques
+    qui y sont inscrites
+    """
+
+    liste = models.ForeignKey(Listes)
+    abonne = models.ForeignKey(Adel)
+    date_inscription = models.DateTimeField(auto_now_add=True)
+#FIXME comprendre pourquoi ça ne marche pas
+#    date_suppression = models.DateTimeField(blank=True,null=True)
+
+    class Meta:
+        unique_together = (("liste","abonne"))
+
+
+    def __unicode__(self):
+        return u"%s" % self.abonne
diff --git a/projets_django/bacgl_listes/listes2/templates/adel.html b/projets_django/bacgl_listes/listes2/templates/adel.html
new file mode 100644 (file)
index 0000000..8d53b83
--- /dev/null
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+
+
+{% block content %}
+
+<h3>Informations sur l'adresse {{adel.adresse}}</h3>
+
+<ul>
+  <li>Nom : {{ad.nom}}</li>
+  <li>Genre : {{ad.genre}}</li>
+  <li>Pays d'origine : {{ad.paysOrigine}}</li>
+  <li>Etablissement : {{ad.etablissement}}</li>
+  <li>Spécialité : {{ad.specialite}}</li>
+  <li>Téléphone : {{ad.telephone}}</li>
+</ul>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes2/templates/admin/base_site.html b/projets_django/bacgl_listes/listes2/templates/admin/base_site.html
new file mode 100644 (file)
index 0000000..16f1d8f
--- /dev/null
@@ -0,0 +1,9 @@
+{% extends "admin/base.html" %}
+
+{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
+
+{% block branding %}
+<h1 id="site-name"><a href="{% url 'admin:index' %}">Gestion de listes du bureau</a></h1>
+{% endblock %}
+
+{% block nav-global %}{% endblock %}
diff --git a/projets_django/bacgl_listes/listes2/templates/base.html b/projets_django/bacgl_listes/listes2/templates/base.html
new file mode 100644 (file)
index 0000000..941e490
--- /dev/null
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+        <title>{% block title %} BACGL - Gestion des listes {% endblock %}</title>
+  <link rel="stylesheet"  type="text/css" href="{{ STATIC_URL }}css/base.css">
+
+  <body>
+          <div id="side">
+                  {% block sidebar %}
+
+                  <ul>
+                          {% if not user.is_authenticated %}
+                                 <li><a href="/connexion">Ouvrir une session</a></li>
+                          {% else %}
+                                 Bienvenue {{ user.username }}
+                                 <li><a href="/accueil">Accueil</li>
+                                  {% if user.is_staff %}
+                                         <li><a href="/admin" target="_blank">Interface d'administration</li>
+                                         <li><a href="/recherche/">Formulaire recherche</li>
+                                  {% endif %}
+                          <li>
+                                   <a href="/deconnexion">Se déconnecter</a> <br />
+                            {% endif %}
+                        </ul>
+
+               {% endblock %}
+                </div>
+
+          <div id="content">
+                  {% block content %}{% endblock %}
+          </div>
+          {% block piedDePage %}
+
+          <hr>
+           <a href="/listes2/">Accueil</a> |<a
+              href="/listes2/infoabonne/">Adresses inscrites</a> | 
+            <a href="/listes2/infousager/">Usagers repertoriés</a> | <a href="/admin/">Administration</a>
+        
+         {% endblock %}
+  </body>
+
+</html>
diff --git a/projets_django/bacgl_listes/listes2/templates/base0.html b/projets_django/bacgl_listes/listes2/templates/base0.html
new file mode 100644 (file)
index 0000000..fea2e64
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+        <title>{% block title %} BACGL - Gestion des listes {% endblock %}</title>
+  <link rel="stylesheet"  type="text/css" href="{{ STATIC_URL }}css/base.css">
+
+  <body>
+          <div id="side">
+                  {% block sidebar %}
+
+                  <ul>
+                          {% if not user.is_authenticated %}
+                          <li><a href="/connexion">Ouvrir une sessions</a></li>
+                          {% else %}
+                          Bienvenue {{ user.username }}
+                          <li><a href="/accueil">Accueil</li>
+                                  {% if user.is_staff %}
+                          <li><a href="/admin" target="_blank">Interface d'administration</li>
+                          <li><a href="/recherche/">Validation - recherche de code</li>
+                                  {% endif %}
+                          <li>
+                            <a href="/deconnexion">Se déconnecter</a> <br />
+                            {% endif %}
+                      <li><a href="/saisie/bilan/">Bilan des saisies</a></li>
+                        </ul>
+
+                        {% endblock %}
+                </div>
+
+          <div id="content">
+                  {% block content %}{% endblock %}
+          </div>
+  </body>
+</html>
diff --git a/projets_django/bacgl_listes/listes2/templates/index.html b/projets_django/bacgl_listes/listes2/templates/index.html
new file mode 100644 (file)
index 0000000..a73fd88
--- /dev/null
@@ -0,0 +1,35 @@
+{% extends "base.html" %}
+
+{% block content %}
+{% if listes_dispo %}
+
+<h3>Listes existantes</h3>
+  <ul>
+    {% for liste in listes_dispo %}
+    <li><a href="/listes2/infoliste/{{liste.id}}">{{liste.nom }}</a></li>
+    {% endfor %}
+ </ul>
+
+    {% else %}
+
+      <p>Pas de listes trouvées !.</p>
+
+{% endif %}
+
+{% if etab_dispo %}
+
+<h3>Etablissements recensés</h3>
+  <ul>
+    {% for etab in etab_dispo %}
+      <li>{{etab }}</li>
+    {% endfor %}
+ </ul>
+
+    {% else %}
+
+      <p>Pas d'établissements trouvés !</p>
+
+{% endif %}
+Consultez <a href="/listes2/infoabonne/">les adresses électroniques</a>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes2/templates/infoabonne.html b/projets_django/bacgl_listes/listes2/templates/infoabonne.html
new file mode 100644 (file)
index 0000000..46cdfb8
--- /dev/null
@@ -0,0 +1,14 @@
+{% extends "base.html" %}
+
+
+{% block content %}
+
+<h3>Adresses présentes</h3>
+Total: {{ab|length}}
+<ul>
+{% for a in ab %}
+<li><a href="/listes/adel/{{a.id}}">{{a}}</a></li> 
+{% endfor %}
+</ul>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes2/templates/infolistes.html b/projets_django/bacgl_listes/listes2/templates/infolistes.html
new file mode 100644 (file)
index 0000000..b27a8c6
--- /dev/null
@@ -0,0 +1,24 @@
+{% extends "base.html" %}
+
+
+{% block content %}
+yello :)
+
+Liste à traiter : {{listes_id}}
+<h3>Liste {{liste.nom}}</h3>
+<p>Description: {{liste.description}}.<br>
+Nombre d'abonnés : {{listing|length}}<br>
+Les abonné(e)s à la liste sont : </p>
+<ul>
+{% for liste in listing %}
+<li>{{liste}}</li> 
+{% endfor %}
+</ul>
+
+<hr />
+<ul>
+{% for liste in listing2 %}
+<li>{{liste}}</li> 
+{% endfor %}
+</ul>
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes2/templates/infousager.html b/projets_django/bacgl_listes/listes2/templates/infousager.html
new file mode 100644 (file)
index 0000000..6ceffee
--- /dev/null
@@ -0,0 +1,68 @@
+{% extends "base.html" %}
+
+
+{% block content %}
+
+<h3>Usagers repertoriés</h3>
+Total: {{us|length}}
+<table border="1">
+  <tr>
+    <td>Nom</td>
+    <td>Genre</td>
+    <td>Pays</td>
+    <td>Etablissement</td>
+    <td>Spécialité</td>
+    <td>Téléphone</td>
+    <td>Adel</td>
+  </tr>
+{% for a in us %}
+<tr><td>{{a.nom}}</td>
+  <td> {{a.genre}} </td>
+  <td>{{a.paysOrigine }}</td>
+  <td>{{a.etablissement}}</td> 
+  <td>{{a.specialite}}</td> 
+  <td>{{a.telephone}}</td> 
+  <td>{{a.adresse}}</td> 
+</tr>
+{% endfor %}
+</table>
+
+ <hr>
+<h2> Troisième approche </h2>
+ <table border=1>
+        {% for email in us.adel_set.all %}
+        <tr>
+                <td> {{email}} </td>
+        </tr>
+        {% endfor %}
+ </table>
+ <hr />
+<h2> Quatrième méthode </h2>
+<h3>Usagers repertoriés</h3>
+ <table border="1">
+        <tr>
+                <td>Nom</td>
+                <td>Genre</td>
+                <td>Pays d'origine</td>
+                <td>Spécialité</td>
+                <td>Telephone</td>
+                <td>Adresse(s) électronique(s)</td>
+        </tr>
+        {% for k,v in info_us3.iteritems %}
+        <tr>
+                <td>
+        {{k.nom}}
+                </td>
+                <td>{{k.genre}}</td>
+                <td>{{k.paysOrigine}}</td>
+                <td>{{k.specialite}}</td>
+                <td>{{k.telephone}}</td>
+
+                <td>
+        {{v}}
+                </td>
+        </tr>
+        {% endfor %}
+ </table>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes2/templates/listes/index.html b/projets_django/bacgl_listes/listes2/templates/listes/index.html
new file mode 100644 (file)
index 0000000..5b6db98
--- /dev/null
@@ -0,0 +1,15 @@
+oui, c'est moi :)
+nessssssssssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaa :P
+{% if listes_dispo %}
+
+  <ul>
+    {% for liste in listes_dispo %}
+      <li>{{etab_dispo.etablissement }}</li>
+    {% endfor %}
+ </ul>
+
+    {% else %}
+
+      <p>Pas d'établissements trouvés !.</p>
+
+{% endif %}
diff --git a/projets_django/bacgl_listes/listes2/templates/pied.html b/projets_django/bacgl_listes/listes2/templates/pied.html
new file mode 100644 (file)
index 0000000..952682e
--- /dev/null
@@ -0,0 +1,8 @@
+{% extends "base.html" %}
+
+{% block piedDePage %}
+<hr>
+
+<a href="/">Accueil</a>
+
+{% endblock %}
diff --git a/projets_django/bacgl_listes/listes2/tests.py b/projets_django/bacgl_listes/listes2/tests.py
new file mode 100644 (file)
index 0000000..7ce503c
--- /dev/null
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/projets_django/bacgl_listes/listes2/urls.py b/projets_django/bacgl_listes/listes2/urls.py
new file mode 100644 (file)
index 0000000..fb95cb3
--- /dev/null
@@ -0,0 +1,12 @@
+from django.conf.urls import patterns, url
+
+from listes2 import views
+
+urlpatterns = patterns('',
+        url(r'^$', views.index, name='index'),
+#        url(r'^adel/(?P<Adel_id>\d+)$', views.adresseE, name='adresseE'),
+        url(r'^infousager/$', views.infoUsager,name='infoUsager'),
+        url(r'^infoabonne/$', views.infoAbonne,
+            name='infoAbonne'),
+        url(r'^infoliste/(?P<Listes_id>\d+)/$', views.infoListes, name='infoListes'),
+        )
diff --git a/projets_django/bacgl_listes/listes2/views.py b/projets_django/bacgl_listes/listes2/views.py
new file mode 100644 (file)
index 0000000..05ccea2
--- /dev/null
@@ -0,0 +1,100 @@
+# -*- coding:utf-8 -*-
+
+from django.shortcuts import render,render_to_response
+from django.template import RequestContext
+from django.http import HttpResponse
+
+from listes2.models import Listes,Usager,Abonnement,Adel,Etablissement
+from listes2.models import Scolarite
+
+#TODO voir pour chaque liste les adresses abonnées
+# Participation.objects.filter(liste__id=x)
+
+#TODO pour chaque Adel je veux les infos sur l'usager
+
+def index(request):
+    """"
+    Page d'accueil du site
+    """
+
+    etab_dispo = []
+    listes_dispo = Listes.objects.order_by('nom')
+
+    for etab in Etablissement.objects.all().order_by('nom'):
+        #ne pas considérer les cellules vides
+        if etab.nom == '' :
+            pass
+        else : etab_dispo.append(etab.nom)
+
+    return render_to_response('index.html',
+            {'etab_dispo': etab_dispo,
+                'listes_dispo':listes_dispo,
+                },
+            context_instance=RequestContext(request))
+
+def infoListes(request,Listes_id):
+    """
+    Toutes les infos sur chaque liste:
+    Nom de la liste,description,abonnés
+    """
+
+    liste = Listes.objects.get(pk=Listes_id)
+
+    li =\
+    Abonnement.objects.filter(liste__id=Listes_id).order_by('abonne__adresse')
+    #avec xx_set c'est plus simple !
+    li2 = liste.abonnement_set.all()
+
+    return  render_to_response('infolistes.html',
+            {'listes_id':Listes_id,
+                'listing':li,
+                'listing2':li2,
+                'liste':liste,
+                },
+            context_instance=RequestContext(request))
+
+def infoAbonne(request):
+    """
+    Disposer des infos sur les différentes adresses 
+    électroniques
+    """
+
+    ab = Adel.objects.all().order_by('adresse')
+
+    return render_to_response('infoabonne.html',
+            {'ab' : ab,
+                },
+            context_instance=RequestContext(request))
+
+def infoUsager(request):
+    """
+    Informations sur tous les usagers inscrits
+    """
+
+    info_us = {}
+    info_us2 = []
+    info_us3 = {}
+
+    us = Usager.objects.all().order_by('nom','genre')
+    #récupérons les adresses électroniques de chacun
+    for i in us:
+        #FIXME prendre en compte l'exception MultipleObjectsReturned 
+        #via get()
+        phrase = "%s|%s|%s|%s|%s|%s" % (i.nom,i.genre,i.paysOrigine,
+                i.specialite,
+                i.telephone,
+                Adel.objects.filter(proprietaire__id=i.id))
+        info_us2.append(phrase)
+        info_us[i] = (i.nom,i.genre,i.paysOrigine,
+                i.telephone,Adel.objects.filter(proprietaire__id=i.id))
+        info_us3[i] = i.adel_set.all()
+        info_us[i] = i.scolarite_set.all()
+
+    return render_to_response('infousager.html',
+            {'us':us,
+                'info_us':info_us,
+                'info_us2':info_us2,
+                'info_us3':info_us3,
+                },
+            context_instance=RequestContext(request))
+
diff --git a/projets_django/bacgl_listes/manage.py b/projets_django/bacgl_listes/manage.py
new file mode 100755 (executable)
index 0000000..0ee9acf
--- /dev/null
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+import os
+import sys
+
+if __name__ == "__main__":
+    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bacgl.settings")
+
+    from django.core.management import execute_from_command_line
+
+    execute_from_command_line(sys.argv)