v1
authorShafeek Sumser <shafeek@LenovoN200.(none)>
Thu, 8 Sep 2011 06:36:56 +0000 (10:36 +0400)
committerShafeek Sumser <shafeek@LenovoN200.(none)>
Thu, 8 Sep 2011 06:36:56 +0000 (10:36 +0400)
12 files changed:
.gitignore [new file with mode: 0644]
__init__.py [new file with mode: 0644]
settings.py [new file with mode: 0644]
suivi/__init__.py [new file with mode: 0644]
suivi/admin.py [new file with mode: 0644]
suivi/admin/base_site.html [new file with mode: 0644]
suivi/base_site.html [new file with mode: 0644]
suivi/models.py [new file with mode: 0644]
suivi/tests.py [new file with mode: 0644]
suivi/views.py [new file with mode: 0644]
urls.py [new file with mode: 0644]
views.py [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..7e97937
--- /dev/null
@@ -0,0 +1,5 @@
+*.pyc
+manage.py
+suivi/*.pyc
+suivi/*old
+
diff --git a/__init__.py b/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/settings.py b/settings.py
new file mode 100644 (file)
index 0000000..00aacce
--- /dev/null
@@ -0,0 +1,81 @@
+# Django settings for ivfe project.
+
+DEBUG = True
+TEMPLATE_DEBUG = DEBUG
+
+ADMINS = (
+    # ('Your Name', 'your_email@domain.com'),
+)
+
+MANAGERS = ADMINS
+
+DATABASE_ENGINE = 'mysql'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
+DATABASE_NAME = 'ivfedb'             # Or path to database file if using sqlite3.
+DATABASE_USER = 'root'             # Not used with sqlite3.
+DATABASE_PASSWORD = ''         # Not used with sqlite3.
+DATABASE_HOST = 'localhost'             # Set to empty string for localhost. Not used with sqlite3.
+DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
+
+# Local time zone for this installation. Choices can be found here:
+# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
+# although not all choices may be available on all operating systems.
+# If running in a Windows environment this must be set to the same as your
+# system time zone.
+TIME_ZONE = 'Indian/Mauritius'
+
+# Language code for this installation. All choices can be found here:
+# http://www.i18nguy.com/unicode/language-identifiers.html
+LANGUAGE_CODE = 'en-us'
+
+SITE_ID = 1
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+
+# Absolute path to the directory that holds media.
+# Example: "/home/media/media.lawrence.com/"
+MEDIA_ROOT = ''
+
+# URL that handles the media served from MEDIA_ROOT. Make sure to use a
+# trailing slash if there is a path component (optional in other cases).
+# Examples: "http://media.lawrence.com", "http://example.com/media/"
+MEDIA_URL = ''
+
+# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
+# trailing slash.
+# Examples: "http://foo.com/media/", "/media/".
+ADMIN_MEDIA_PREFIX = '/media/'
+
+# Make this unique, and don't share it with anybody.
+SECRET_KEY = 'aswf+fk2bi@wn09*=hvxr_)u!*z(80(^!mr1kov%zret&mgxbm'
+
+# List of callables that know how to import templates from various sources.
+TEMPLATE_LOADERS = (
+    'django.template.loaders.filesystem.load_template_source',
+    'django.template.loaders.app_directories.load_template_source',
+#     'django.template.loaders.eggs.load_template_source',
+)
+
+MIDDLEWARE_CLASSES = (
+    'django.middleware.common.CommonMiddleware',
+    'django.contrib.sessions.middleware.SessionMiddleware',
+    'django.contrib.auth.middleware.AuthenticationMiddleware',
+)
+
+ROOT_URLCONF = 'ivfe.urls'
+
+TEMPLATE_DIRS = (
+    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
+    # Always use forward slashes, even on Windows.
+    # Don't forget to use absolute paths, not relative paths.
+)
+
+INSTALLED_APPS = (
+    'django.contrib.auth',
+    'django.contrib.admin',
+    'django.contrib.contenttypes',
+    'django.contrib.sessions',
+#    'django.contrib.sites',
+    'ivfe.suivi',
+)
diff --git a/suivi/__init__.py b/suivi/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/suivi/admin.py b/suivi/admin.py
new file mode 100644 (file)
index 0000000..61c4b88
--- /dev/null
@@ -0,0 +1,54 @@
+from django.contrib import admin
+from ivfe.suivi.models import Pays, Cours, Tuteur, Indemnisation, Promotion, Participant, Efacilitateur, Module, Etape, Devoir, RapportTutorat, Parcouru, AccomplirDevoir, PaiementParticipant, EtatParticipant
+
+class ListParticipants(admin.ModelAdmin):
+       list_display = ('Nom', 'Prenom', 'Courriel', 'CourrielPerso', 'Ville', 'Pays', 'TitreProjet', 'Tuteur')
+       search_fields = ('Nom', 'Prenom')
+       list_filter = ('Nom', 'Prenom')
+
+class ListTuteurs(admin.ModelAdmin):
+       list_display = ('Nom', 'Prenom', 'Ville', 'Sexe', 'Courriel', 'Pays')
+       search_fields = ('Nom', 'Prenom')
+       list_filter = ('Nom', 'Prenom')
+
+class ListPromotions(admin.ModelAdmin):
+       list_display = ('NomPromotion', 'DateRentree', 'DateSortie', 'EtatPromotion')
+
+class ListEfacilitateurs(admin.ModelAdmin):
+       list_display = ('Nom', 'Prenom', 'Ville', 'Sexe', 'Courriel', 'Pays')
+       search_fields = ('Nom', 'Prenom')
+       list_filter = ('Nom', 'Prenom')
+
+class EtatParticipants(admin.ModelAdmin):
+       list_display = ('Participant','Etat','Commentaires')
+
+class IndemnisationAdmin(admin.ModelAdmin):
+       list_display = ('Tuteur','DateIndemnisation','LibelleIndemnisation','MontantIndemnisation','IndemnisationPaye')
+
+class PaiementParticipantAdmin(admin.ModelAdmin):
+       list_display = ('Participant','DatePaiement','DetailsPaiement','Montant','FraisPaye')
+
+class ParcouruAdmin(admin.ModelAdmin):
+       list_display = ('Participant','DateParcouru','Etape','ParcoursValide')
+
+class RapportTutoratAdmin(admin.ModelAdmin):
+       list_display = ('Tuteur','DateRapport','LibelleRapport','Participant','Module','RapportValide')
+
+class AccomplirDevoirAdmin(admin.ModelAdmin):
+       list_display = ('Participant','Devoir','DateRecu','DateCorrige','Commentaires','Efacilitateur')
+
+admin.site.register(Pays)
+admin.site.register(Cours)
+admin.site.register(Tuteur, ListTuteurs)
+admin.site.register(Indemnisation, IndemnisationAdmin)
+admin.site.register(Promotion)
+admin.site.register(Participant, ListParticipants)
+admin.site.register(Efacilitateur, ListEfacilitateurs)
+admin.site.register(Module)
+admin.site.register(Etape)
+admin.site.register(Devoir)
+admin.site.register(RapportTutorat, RapportTutoratAdmin)
+admin.site.register(Parcouru, ParcouruAdmin)
+admin.site.register(AccomplirDevoir, AccomplirDevoirAdmin)
+admin.site.register(PaiementParticipant, PaiementParticipantAdmin)
+admin.site.register(EtatParticipant, EtatParticipants)
diff --git a/suivi/admin/base_site.html b/suivi/admin/base_site.html
new file mode 100644 (file)
index 0000000..9cddbce
--- /dev/null
@@ -0,0 +1,10 @@
+{% extends "admin/base.html" %}
+{% load i18n %}
+
+{% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %}
+
+{% block branding %}
+<h1 id="site-name">{% trans 'Django administration - test' %}</h1>
+{% endblock %}
+
+{% block nav-global %}{% endblock %}
diff --git a/suivi/base_site.html b/suivi/base_site.html
new file mode 100644 (file)
index 0000000..b867bd2
--- /dev/null
@@ -0,0 +1,10 @@
+{% extends "admin/base.html" %}
+{% load i18n %}
+
+{% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %}
+
+{% block branding %}
+<h1 id="site-name">{% trans 'Django administration' %}</h1>
+{% endblock %}
+
+{% block nav-global %}{% endblock %}
diff --git a/suivi/models.py b/suivi/models.py
new file mode 100644 (file)
index 0000000..8b88e46
--- /dev/null
@@ -0,0 +1,184 @@
+from django.db import models
+
+# Create your models here.
+class Pays(models.Model):
+       NomPays = models.CharField("Pays",max_length=100)
+
+        def __unicode__(self):
+                return self.NomPays
+
+class Cours(models.Model):
+        LibelleCours = models.CharField("Nom du Cours",max_length=100)
+
+        def __unicode__(self):
+                return self.LibelleCours
+
+class Tuteur(models.Model):
+        HF = (
+                (u'H', u'Homme'),
+                (u'F', u'Femme'),
+        )
+        Nom = models.CharField("Nom Tuteur",max_length=100)
+        Prenom = models.CharField("Prenom Tuteur",max_length=150)
+        Adresse = models.CharField(blank=True, max_length=150)
+        Ville = models.CharField(blank=True, max_length=100)
+        Sexe = models.CharField(blank=True, max_length=2, choices=HF)
+        Courriel = models.EmailField()
+        Pays = models.ForeignKey(Pays)
+
+        def __unicode__(self):
+               return u'%s %s' % (self.Nom, self.Prenom)
+
+
+class Indemnisation(models.Model):
+        DateIndemnisation = models.DateField("Date d'indemnisation")
+        LibelleIndemnisation = models.CharField(max_length=100)
+        MontantIndemnisation = models.IntegerField(max_length=10)
+       IndemnisationPaye = models.BooleanField()
+       Tuteur = models.ForeignKey(Tuteur)
+
+class Promotion(models.Model):
+        EP = (
+                (u'0', u'En Cours'),
+                (u'1', u'Termine'),
+        )
+       NomPromotion = models.CharField(max_length=100)
+       DateRentree = models.DateField(blank=True, null=True)
+       DateSortie = models.DateField(blank=True, null=True)
+       EtatPromotion = models.CharField(max_length=2, choices=EP)
+
+        def __unicode__(self):
+                return self.NomPromotion
+
+class Participant(models.Model):
+        HF = (
+                (u'H', u'Homme'),
+                (u'F', u'Femme'),
+        )
+        Nom = models.CharField(max_length=100)
+        Prenom = models.CharField(max_length=150)
+        Adresse = models.CharField(blank=True, max_length=150)
+        Ville = models.CharField(blank=True, max_length=100)
+        Sexe = models.CharField(max_length=2, choices=HF)
+        Courriel = models.EmailField("Courriel IVFE", blank=True)
+        CourrielPerso = models.EmailField("Courriel Personnel", blank=True)
+        DateNaissance = models.DateField("Date de Naissance", blank=True, null=True)
+        TitreProjet = models.TextField("Titre du projet")
+        Pays = models.ForeignKey(Pays)
+        Tuteur = models.ForeignKey(Tuteur)
+       Promotion = models.ForeignKey(Promotion)
+
+       def __unicode__(self):
+               return u'%s %s' % (self.Nom, self.Prenom)
+
+
+class EtatParticipant(models.Model):
+       HF = (
+                (u'Non-Confirme', u'Non-Confirme'),
+                (u'Confirme, Non-Paye', u'Confirme, Non-Paye'),
+                (u'Confirme et Paye', u'Confirme et Paye'),
+                (u'Suit le Parcours', u'Suit le Parcours'),
+                (u'Desiste, Desinscrit', u'Desiste, Desinscrit'),
+                (u'Parcours Termine', u'Parcours Termine'),
+        )
+       Etat = models.CharField(max_length=50, choices=HF)
+        Commentaires = models.TextField(blank=True)
+       Participant = models.ForeignKey(Participant)
+
+        def __unicode__(self):
+                return self.Etat
+
+class Efacilitateur(models.Model):
+       HF = (
+                (u'H', u'Homme'),
+                (u'F', u'Femme'),
+        )
+        Nom = models.CharField(max_length=100)
+        Prenom = models.CharField(max_length=150)
+        Adresse = models.CharField(blank=True, max_length=150)
+        Ville = models.CharField(blank=True, max_length=100)
+        Sexe = models.CharField(max_length=2, choices=HF)
+        Courriel = models.EmailField()
+        Pays = models.ForeignKey(Pays)
+       Participant = models.ForeignKey(Participant)
+
+        def __unicode__(self):
+               return u'%s %s' % (self.Nom, self.Prenom)
+
+class Module(models.Model):
+        LibelleModule = models.CharField(max_length=100)
+        DateDebut = models.DateField(blank=True, null=True)
+        DateFin = models.DateField(blank=True, null=True)
+        Cours = models.ForeignKey(Cours)
+
+        def __unicode__(self):
+                return self.LibelleModule
+
+class Etape(models.Model):
+        LibelleEtape = models.CharField(max_length=100)
+        DateDebut = models.DateField(blank=True, null=True)
+        DateFin = models.DateField(blank=True, null=True)
+        Module = models.ForeignKey(Module)
+
+        def __unicode__(self):
+                return self.LibelleEtape
+
+class Devoir(models.Model):
+        LibelleDevoir = models.CharField(max_length=100)
+        DateRecu = models.DateField(blank=True, null=True)
+        DateRendu = models.DateField(blank=True, null=True)
+       Etape = models.ForeignKey(Etape)
+
+        def __unicode__(self):
+                return self.LibelleDevoir
+
+
+class Promotion(models.Model):
+        LibellePromotion = models.CharField(max_length=100)
+        DateDebut = models.DateField(blank=True, null=True)
+        DateFin = models.DateField(blank=True, null=True)
+               Cours = models.ForeignKey(Cours)
+
+        def __unicode__(self):
+                return self.LibellePromotion
+
+class RapportTutorat(models.Model):
+       R = (
+                (u'0', u'Confirme'),
+                (u'1', u'Non-Confirme'),
+        )
+       DateRapport = models.DateField()
+        LibelleRapport = models.CharField(max_length=100)
+       RapportValide = models.CharField(blank=True, max_length=2, choices=R)
+       Tuteur = models.ForeignKey(Tuteur)
+       Module = models.ForeignKey(Module)
+       Participant = models.ForeignKey(Participant)
+
+        def __unicode__(self):
+                return self.LibelleRapport
+
+class Parcouru(models.Model):
+        P = (
+                (u'0', u'Confirme'),
+                (u'1', u'Non-Confirme'),
+        )
+       DateParcouru = models.DateField()
+       ParcoursValide = models.CharField(max_length=2, choices=P)
+       Participant = models.ForeignKey(Participant)
+       Etape = models.ForeignKey(Etape)
+
+class AccomplirDevoir(models.Model):
+       DateRecu = models.DateField()
+       DateCorrige = models.DateField(blank=True, null=True)
+        Commentaires = models.TextField(blank=True)
+       Participant = models.ForeignKey(Participant)
+       Devoir = models.ForeignKey(Devoir)
+       Efacilitateur = models.ForeignKey(Efacilitateur)
+
+class PaiementParticipant(models.Model):
+       DatePaiement = models.DateField()
+       DetailsPaiement = models.CharField(max_length=100)
+       Montant = models.IntegerField()
+       FraisPaye = models.BooleanField()
+       Participant = models.ForeignKey(Participant)
+
diff --git a/suivi/tests.py b/suivi/tests.py
new file mode 100644 (file)
index 0000000..2247054
--- /dev/null
@@ -0,0 +1,23 @@
+"""
+This file demonstrates two different styles of tests (one doctest and one
+unittest). These will both pass when you run "manage.py test".
+
+Replace these with more appropriate tests for your application.
+"""
+
+from django.test import TestCase
+
+class SimpleTest(TestCase):
+    def test_basic_addition(self):
+        """
+        Tests that 1 + 1 always equals 2.
+        """
+        self.failUnlessEqual(1 + 1, 2)
+
+__test__ = {"doctest": """
+Another way to test that 1 + 1 is equal to 2.
+
+>>> 1 + 1 == 2
+True
+"""}
+
diff --git a/suivi/views.py b/suivi/views.py
new file mode 100644 (file)
index 0000000..60f00ef
--- /dev/null
@@ -0,0 +1 @@
+# Create your views here.
diff --git a/urls.py b/urls.py
new file mode 100644 (file)
index 0000000..f786fb7
--- /dev/null
+++ b/urls.py
@@ -0,0 +1,19 @@
+from django.conf.urls.defaults import *
+from ivfe.views import hello
+
+# Uncomment the next two lines to enable the admin:
+from django.contrib import admin
+admin.autodiscover()
+
+urlpatterns = patterns('',
+    # Example:
+    # (r'^ivfe/', include('ivfe.foo.urls')),
+
+    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
+    # to INSTALLED_APPS to enable admin documentation:
+    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
+
+    # Uncomment the next line to enable the admin:
+       (r'^admin/', include(admin.site.urls)),
+       ('^hello/$',hello),
+)
diff --git a/views.py b/views.py
new file mode 100644 (file)
index 0000000..aa497d7
--- /dev/null
+++ b/views.py
@@ -0,0 +1,4 @@
+from django.http import HttpResponse
+
+def hello(request):
+        return HttpResponse("hello World!!!")