Correction de la recherche d'évènements par région
authorEric Mc Sween <eric.mcsween@gmail.com>
Tue, 15 Feb 2011 22:00:37 +0000 (17:00 -0500)
committerEric Mc Sween <eric.mcsween@gmail.com>
Tue, 15 Feb 2011 22:00:37 +0000 (17:00 -0500)
Demande #1123

auf_savoirs_en_partage/savoirs/forms.py
auf_savoirs_en_partage/savoirs/migrations/0009_auto__chg_field_evenement_description.py [new file with mode: 0644]
auf_savoirs_en_partage/savoirs/models.py
auf_savoirs_en_partage/scripts/sphinx.conf.py.in
auf_savoirs_en_partage/templates/savoirs/evenement.html
auf_savoirs_en_partage/templates/savoirs/evenement_moderation.html
auf_savoirs_en_partage/templates/savoirs/rss_evenement_description.html

index b4516cc..2fd2873 100644 (file)
@@ -174,7 +174,7 @@ class EvenementForm(EvenementAdminForm):
     debut = SEPDateTimeField()
     fin = SEPDateTimeField()
     description = forms.CharField(
-        label='Description', required=False,
+        label='Description', required=True,
         help_text="Présenter les thématiques de l'évènement et donner toutes les informations utiles aux futurs participants.",
         widget=forms.Textarea
     )
diff --git a/auf_savoirs_en_partage/savoirs/migrations/0009_auto__chg_field_evenement_description.py b/auf_savoirs_en_partage/savoirs/migrations/0009_auto__chg_field_evenement_description.py
new file mode 100644 (file)
index 0000000..57a7776
--- /dev/null
@@ -0,0 +1,268 @@
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        
+        # Changing field 'Evenement.description'
+        db.alter_column('savoirs_evenement', 'description', self.gf('django.db.models.fields.TextField')(default=''))
+
+
+    def backwards(self, orm):
+        
+        # Changing field 'Evenement.description'
+        db.alter_column('savoirs_evenement', 'description', self.gf('django.db.models.fields.TextField')(null=True))
+
+
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'ordering': "('content_type__app_label', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'datamaster_modeles.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.implantation': {
+            'Meta': {'ordering': "('nom',)", 'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True'}),
+            'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'db_column': "'adresse_physique_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'adresse_physique_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'adresse_postale_boite_postale': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '20', 'blank': 'True'}),
+            'adresse_postale_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True'}),
+            'adresse_postale_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_postale_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_postale'", 'db_column': "'adresse_postale_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'adresse_postale_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'bureau_rattachement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'bureau_rattachement'"}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'code_meteo': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'courriel': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'courriel_interne': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'date_extension': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fermeture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_inauguration': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_ouverture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'fax': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'fax_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'fuseau_horaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'hebergement_convention': ('django.db.models.fields.NullBooleanField', [], {'null': 'True'}),
+            'hebergement_convention_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'hebergement_etablissement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'modif_date': ('django.db.models.fields.DateField', [], {}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"}),
+            'remarque': ('django.db.models.fields.TextField', [], {}),
+            'responsable_implantation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'statut': ('django.db.models.fields.IntegerField', [], {}),
+            'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'telephone_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'url': ('django.db.models.fields.URLField', [], {'max_length': '255', 'blank': 'True'})
+        },
+        'datamaster_modeles.pays': {
+            'Meta': {'ordering': "('nom',)", 'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '2', 'primary_key': 'True'}),
+            'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Bureau']", 'to_field': "'code'", 'db_column': "'code_bureau'"}),
+            'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3', 'blank': 'True'}),
+            'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {}),
+            'monnaie': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nord_sud': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.region': {
+            'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'gere_region'", 'db_column': "'implantation_bureau'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'datamaster_modeles.thematique': {
+            'Meta': {'object_name': 'Thematique', 'db_table': "u'ref_thematique'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'savoirs.actualite': {
+            'Meta': {'ordering': "['-date']", 'object_name': 'Actualite', 'db_table': "u'actualite'"},
+            'ancienid': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'db_column': "'ancienId_actualite'", 'blank': 'True'}),
+            'date': ('django.db.models.fields.DateField', [], {'db_column': "'date_actualite'"}),
+            'disciplines': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'actualites'", 'blank': 'True', 'to': "orm['savoirs.Discipline']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True', 'db_column': "'id_actualite'"}),
+            'regions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'actualites'", 'blank': 'True', 'to': "orm['datamaster_modeles.Region']"}),
+            'source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actualites'", 'to': "orm['savoirs.SourceActualite']"}),
+            'texte': ('django.db.models.fields.TextField', [], {'db_column': "'texte_actualite'"}),
+            'titre': ('django.db.models.fields.CharField', [], {'max_length': '765', 'db_column': "'titre_actualite'"}),
+            'url': ('django.db.models.fields.CharField', [], {'max_length': '765', 'db_column': "'url_actualite'"}),
+            'visible': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_column': "'visible_actualite'"})
+        },
+        'savoirs.discipline': {
+            'Meta': {'ordering': "['nom']", 'object_name': 'Discipline', 'db_table': "u'discipline'"},
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True', 'db_column': "'id_discipline'"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '765', 'db_column': "'nom_discipline'"})
+        },
+        'savoirs.evenement': {
+            'Meta': {'ordering': "['-debut']", 'object_name': 'Evenement'},
+            'adresse': ('django.db.models.fields.TextField', [], {}),
+            'approuve': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'contact': ('django.db.models.fields.TextField', [], {'null': 'True'}),
+            'courriel': ('django.db.models.fields.EmailField', [], {'max_length': '75'}),
+            'debut': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'description': ('django.db.models.fields.TextField', [], {}),
+            'discipline': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'discipline'", 'null': 'True', 'to': "orm['savoirs.Discipline']"}),
+            'discipline_secondaire': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'discipline_secondaire'", 'null': 'True', 'to': "orm['savoirs.Discipline']"}),
+            'fin': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'fuseau': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'mots_cles': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'evenements'", 'null': 'True', 'to': "orm['datamaster_modeles.Pays']"}),
+            'piece_jointe': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'regions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'evenements'", 'blank': 'True', 'to': "orm['datamaster_modeles.Region']"}),
+            'titre': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'uid': ('django.db.models.fields.CharField', [], {'default': "'a3d5ab36-394d-11e0-965a-f0def13a5ffb'", 'max_length': '255'}),
+            'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'ville': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'savoirs.harvestlog': {
+            'Meta': {'object_name': 'HarvestLog'},
+            'added': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'context': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'processed': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'record': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['savoirs.Record']", 'null': 'True', 'blank': 'True'}),
+            'updated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'savoirs.listset': {
+            'Meta': {'object_name': 'ListSet'},
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'server': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'spec': ('django.db.models.fields.CharField', [], {'max_length': '255', 'primary_key': 'True'}),
+            'validated': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
+        },
+        'savoirs.pagestatique': {
+            'Meta': {'object_name': 'PageStatique'},
+            'contenu': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.CharField', [], {'max_length': '32', 'primary_key': 'True'}),
+            'titre': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'savoirs.profile': {
+            'Meta': {'object_name': 'Profile'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'serveurs': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['savoirs.Serveur']", 'null': 'True', 'blank': 'True'}),
+            'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'})
+        },
+        'savoirs.record': {
+            'Meta': {'object_name': 'Record'},
+            'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'alt_title': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'contributor': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'creation': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'creator': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'disciplines': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['savoirs.Discipline']", 'symmetrical': 'False', 'blank': 'True'}),
+            'format': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'identifier': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+            'isbn': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'issued': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'language': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'last_checksum': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'last_update': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'listsets': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['savoirs.ListSet']", 'null': 'True', 'blank': 'True'}),
+            'modified': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'orig_lang': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'pays': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['datamaster_modeles.Pays']", 'symmetrical': 'False', 'blank': 'True'}),
+            'publisher': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'regions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['datamaster_modeles.Region']", 'symmetrical': 'False', 'blank': 'True'}),
+            'server': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'source': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'subject': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'thematiques': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['datamaster_modeles.Thematique']", 'symmetrical': 'False', 'blank': 'True'}),
+            'title': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'uri': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+            'validated': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
+        },
+        'savoirs.serveur': {
+            'Meta': {'object_name': 'Serveur'},
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'primary_key': 'True'})
+        },
+        'savoirs.sourceactualite': {
+            'Meta': {'object_name': 'SourceActualite'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': "'actu'", 'max_length': '10'}),
+            'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+        }
+    }
+
+    complete_apps = ['savoirs']
index 21804c8..b9e0845 100644 (file)
@@ -314,20 +314,25 @@ class Evenement(models.Model):
     debut = models.DateTimeField(default=datetime.datetime.now)
     fin = models.DateTimeField(default=datetime.datetime.now)
     fuseau = models.CharField(max_length=100, choices=TIME_ZONE_CHOICES, verbose_name='fuseau horaire')
-    description = models.TextField(blank=True, null=True)
+    description = models.TextField()
     contact = models.TextField(null=True)   # champ obsolète
     prenom = models.CharField('prénom', max_length=100)
     nom = models.CharField(max_length=100)
     courriel = models.EmailField()
     url = models.CharField(max_length=255, blank=True, null=True)
     piece_jointe = models.FileField(upload_to='agenda/pj', blank=True, verbose_name='pièce jointe')
-    regions = models.ManyToManyField(Region, blank=True, related_name="evenements", verbose_name='régions')
+    regions = models.ManyToManyField(Region, blank=True, related_name="evenements", verbose_name='régions additionnelles',
+                                     help_text="On considère d'emblée que l'évènement se déroule dans la région "
+                                               "dans laquelle se trouve le pays indiqué plus haut. Il est possible "
+                                               "de désigner ici des régions additionnelles.")
 
     objects = EvenementManager()
     all_objects = models.Manager()
 
     class Meta:
         ordering = ['-debut']
+        verbose_name = u'évènement'
+        verbose_name_plural = u'évènements'
 
     def __unicode__(self,):
         return "[%s] %s" % (self.uid, self.titre)
@@ -355,6 +360,9 @@ class Evenement(models.Model):
     def piece_jointe_display(self):
         return self.piece_jointe and os.path.basename(self.piece_jointe.name)
 
+    def courriel_display(self):
+        return self.courriel.replace(u'@', u' (à) ')
+
     def clean(self):
         from django.core.exceptions import ValidationError
         if self.debut > self.fin:
@@ -413,8 +421,7 @@ class Evenement(models.Model):
             cal.vevent.add('contact').value = self.contact
         if len(self.url) > 0:
             cal.vevent.add('url').value = self.url
-        if len(self.lieu) > 0:
-            cal.vevent.add('location').value = self.lieu
+        cal.vevent.add('location').value = ', '.join([x for x in [self.adresse, self.ville, self.pays.nom] if x])
         if self.piece_jointe:
             url = self.piece_jointe.url
             if not url.startswith('http://'):
index d0f584b..612a815 100644 (file)
@@ -137,17 +137,21 @@ emit_source('savoirsenpartage_evenements',
                       e.titre AS titre,
                       e.mots_cles AS mots_cles,
                       e.type AS type,
-                      e.lieu AS lieu,
+                      e.adresse AS adresse,
+                      e.ville AS ville,
                       e.description AS description,
-                      e.contact AS contact,
+                      CONCAT_WS(e.prenom, e.nom, e.courriel, e.contact) AS contact,
+                      p.nom AS pays,
                       CONCAT_WS(',', d.nom_discipline, d2.nom_discipline) AS disciplines,
-                      GROUP_CONCAT(DISTINCT r.nom) AS regions,
+                      CONCAT_WS(',', pr.nom, GROUP_CONCAT(DISTINCT r.nom)) AS regions,
                       TO_DAYS(DATE(e.debut)) AS debut
                FROM savoirs_evenement e
                LEFT JOIN discipline d ON d.id_discipline = e.discipline_id
                LEFT JOIN discipline d2 ON d2.id_discipline = e.discipline_secondaire_id
                LEFT JOIN savoirs_evenement_regions er ON er.evenement_id = e.id
                LEFT JOIN ref_region r ON r.id = er.region_id
+               LEFT JOIN ref_pays p ON p.code = e.pays_id
+               LEFT JOIN ref_region pr ON pr.id = p.region
                WHERE e.approuve
                GROUP BY e.id''',
             sql_query_info='SELECT * from savoirs_evenement WHERE id=$id',
index 9144e73..0f42834 100644 (file)
@@ -42,7 +42,7 @@
     {% endif %}
     {% if evenement.prenom %}
     <td>
-        {{ evenement.prenom }} {{ evenement.nom }} &lt;{{ evenement.courriel }}&gt;
+        {{ evenement.prenom }} {{ evenement.nom }} &lt;{{ evenement.courriel_display }}&gt;
     </td>
     {% endif %}
 </tr>
index 1e8f9ff..db1e3cb 100644 (file)
@@ -16,7 +16,7 @@
                 <li>Type: {{ e.type }}</li>
                 <li>Debut: {{ e.debut }}</li>
                 <li>Fin: {{ e.fin }}</li>
-                <li>Lieu: {{ e.lieu }}</li>
+                <li>Lieu: {{ e.adresse }} {{ e.ville }} {{ e.pays.nom }}</li>
                 <li>Description: {{ e.description }}</li>
                 <li>Contact: {{ e.contact }}</li>
                 <li>Url: {{ e.url }}</li>
index f58479e..5215f36 100644 (file)
@@ -1,4 +1,4 @@
 <p>quoi ? : {{ obj.description }}</p>
-<p>où ? : {{ obj.lieu }}</p>
+<p>où ? : {{ obj.adresse }}, {{ obj.ville }}, {{ obj.pays.nom }}</p>
 <p>quand ? : {{ obj.debut|date:"d F Y H:m" }}</p>
 <p>durée ? : {{ obj.duration_display }}</p>