class ActualiteAdmin(admin.ModelAdmin):
list_filter = ('visible', 'disciplines', 'regions')
list_display = ('titre', 'source', 'date', 'visible')
+ list_editable = ['visible']
actions = ['rendre_visible', 'rendre_invisible', 'assigner_regions', 'assigner_disciplines']
def queryset(self, request):
class SourceActualiteAdmin(admin.ModelAdmin):
actions = ['update_sources']
- list_display = ['nom', 'url']
+ list_display = ['nom', 'url', 'type']
+ list_filter = ['type']
def update_sources(self, request, queryset):
for source in queryset:
model = u'références'
elif action == u'visible':
- objects = Actualite.objects.in_bulk(ids).values()
+ objects = Actualite.all_objects.in_bulk(ids).values()
action = ('visible', True)
desc = u'visibles'
model = u'actualités'
elif action == u'invisible':
- objects = Actualite.objects.in_bulk(ids).values()
+ objects = Actualite.all_objects.in_bulk(ids).values()
action = ('visible', False)
desc = u'invisibles'
model = u'actualités'
pk: 1
fields:
nom: Agronomie
+
+- model: savoirs.SourceActualite
+ pk: 1
+ fields:
+ nom: Actualités AUF
+ url: "http://www.auf.org/rss/actualites.xml"
+ type: actu
+
+- model: savoirs.SourceActualite
+ pk: 2
+ fields:
+ nom: "Appels d'offres AUF"
+ url: "http://www.auf.org/rss/appels-d-offres.xml"
+ type: appels
+
+- model: savoirs.Actualite
+ pk: 1
+ fields:
+ titre: "Conférence annuelle"
+ texte: "Bla bla bla..."
+ url: "http://www.auf.org"
+ date: "2010-01-01"
+ visible: 1
+ source: 1
+
+- model: savoirs.Actualite
+ pk: 2
+ fields:
+ titre: "Bourse de mobilité"
+ texte: "Bla bla bla..."
+ url: "http://www.auf.org"
+ date: "2010-01-02"
+ visible: 1
+ source: 2
--- /dev/null
+# 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):
+
+ # Adding field 'SourceActualite.type'
+ db.add_column('savoirs_sourceactualite', 'type', self.gf('django.db.models.fields.CharField')(default='actu', max_length=10), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'SourceActualite.type'
+ db.delete_column('savoirs_sourceactualite', 'type')
+
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", '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']", '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']", 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
+ },
+ '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'max_length': '3', 'unique': 'True', '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'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', [], {'related_name': "'actualites'", 'blank': 'True', 'to': "orm['datamaster_modeles.Region']"}),
+ 'source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actualites'", 'blank': 'True', 'null': 'True', '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'},
+ 'approuve': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'contact': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'debut': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'discipline': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discipline'", 'blank': 'True', 'null': 'True', 'to': "orm['savoirs.Discipline']"}),
+ 'discipline_secondaire': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discipline_secondaire'", 'blank': 'True', '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'}),
+ 'lieu': ('django.db.models.fields.TextField', [], {}),
+ 'mots_cles': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'evenements'", 'blank': 'True', 'null': 'True', 'to': "orm['datamaster_modeles.Pays']"}),
+ 'piece_jointe': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'regions': ('django.db.models.fields.related.ManyToManyField', [], {'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': "'1e67134a-1e86-11e0-a898-90e6ba758372'", 'max_length': '255'}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ '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.profile': {
+ 'Meta': {'object_name': 'Profile'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'serveurs': ('django.db.models.fields.related.ManyToManyField', [], {'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']", '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', [], {'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']", 'blank': 'True'}),
+ 'publisher': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'regions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['datamaster_modeles.Region']", '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']", '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'})
+ }
+ }
+
+ complete_apps = ['savoirs']
--- /dev/null
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+
+from savoirs.models import SourceActualite, Actualite
+
+class Migration(DataMigration):
+
+ def forwards(self, orm):
+ default = SourceActualite.objects.create(nom='Autres actualités', type='actu')
+ SourceActualite.objects.create(nom="Autres appels d'offres", type='appels')
+ for actualite in Actualite.all_objects.filter(source=None):
+ actualite.source = default
+ actualite.save()
+
+ def backwards(self, orm):
+ "Write your backwards methods here."
+ default = SourceActualite.objects.get(nom='Autres actualités', type='actu')
+ for actualite in Actualite.all_objects.filter(source=default):
+ actualite.source = None
+ actualite.save()
+ default.delete()
+ SourceActualite.objects.get(nom="Autres appels d'offres", type='appels').delete()
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", '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']", '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']", 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
+ },
+ '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'max_length': '3', 'unique': 'True', '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'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', [], {'related_name': "'actualites'", 'blank': 'True', 'to': "orm['datamaster_modeles.Region']"}),
+ 'source': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'actualites'", 'blank': 'True', 'null': 'True', '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'},
+ 'approuve': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'contact': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'debut': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'discipline': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discipline'", 'blank': 'True', 'null': 'True', 'to': "orm['savoirs.Discipline']"}),
+ 'discipline_secondaire': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discipline_secondaire'", 'blank': 'True', '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'}),
+ 'lieu': ('django.db.models.fields.TextField', [], {}),
+ 'mots_cles': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'evenements'", 'blank': 'True', 'null': 'True', 'to': "orm['datamaster_modeles.Pays']"}),
+ 'piece_jointe': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'regions': ('django.db.models.fields.related.ManyToManyField', [], {'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': "'12802f08-1e8b-11e0-aa67-90e6ba758372'", 'max_length': '255'}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ '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.profile': {
+ 'Meta': {'object_name': 'Profile'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'serveurs': ('django.db.models.fields.related.ManyToManyField', [], {'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']", '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', [], {'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']", 'blank': 'True'}),
+ 'publisher': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'regions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['datamaster_modeles.Region']", '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']", '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': {'ordering': "['type', 'nom']", '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']
--- /dev/null
+# 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 'Actualite.source'
+ db.alter_column(u'actualite', 'source_id', self.gf('django.db.models.fields.related.ForeignKey')(default=0, to=orm['savoirs.SourceActualite']))
+
+
+ def backwards(self, orm):
+
+ # Changing field 'Actualite.source'
+ db.alter_column(u'actualite', 'source_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['savoirs.SourceActualite']))
+
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", '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']", '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']", 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
+ },
+ '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'max_length': '3', 'unique': 'True', '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'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', [], {'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'},
+ 'approuve': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'contact': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'debut': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'discipline': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discipline'", 'blank': 'True', 'null': 'True', 'to': "orm['savoirs.Discipline']"}),
+ 'discipline_secondaire': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discipline_secondaire'", 'blank': 'True', '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'}),
+ 'lieu': ('django.db.models.fields.TextField', [], {}),
+ 'mots_cles': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'evenements'", 'blank': 'True', 'null': 'True', 'to': "orm['datamaster_modeles.Pays']"}),
+ 'piece_jointe': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ 'regions': ('django.db.models.fields.related.ManyToManyField', [], {'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': "'824de2d2-1e8e-11e0-b71c-90e6ba758372'", 'max_length': '255'}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ '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.profile': {
+ 'Meta': {'object_name': 'Profile'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'serveurs': ('django.db.models.fields.related.ManyToManyField', [], {'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']", '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', [], {'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']", 'blank': 'True'}),
+ 'publisher': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'regions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['datamaster_modeles.Region']", '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']", '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']
--- /dev/null
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+from savoirs.models import SourceActualite
+
+class Migration(DataMigration):
+ feeds = (
+ ('http://www.auf.org/rss/appels-d-offres.xml', "Appels d'offres AUF"),
+ ('http://www.auf.org/rss/appels-d-offres-bureau-afrique-centrale.xml', "Appels d'offres AUF - Afrique Centrale"),
+ ('http://www.auf.org/rss/appels-d-offres-bureau-afrique-de-l-ouest.xml', "Appels d'offres AUF - Afrique de l'Ouest"),
+ ('http://www.auf.org/rss/appels-d-offres-bureau-des-ameriques.xml', "Appels d'offres AUF - Amériques"),
+ ('http://www.auf.org/rss/appels-d-offres-bureau-caraibe.xml', "Appels d'offres AUF - Caraïbe"),
+ ('http://www.auf.org/rss/appels-d-offres-bureau-europe-centrale-et-orientale.xml', "Appels d'offres AUF - Europe centrale et orientale"),
+ ('http://www.auf.org/rss/appels-d-offres-bureau-moyen-orient.xml', "Appels d'offres AUF - Moyen-Orient"),
+ ('http://www.auf.org/rss/appels-d-offres-bureau-ocean-indien.xml', "Appels d'offres AUF - Océan indien"),
+ )
+
+ def forwards(self, orm):
+ "Write your forwards methods here."
+ for url, nom in self.feeds:
+ source = SourceActualite.objects.create(url=url, nom=nom, type='appels')
+ source.update()
+
+ def backwards(self, orm):
+ "Write your backwards methods here."
+ for url, nom in self.feeds:
+ SourceActualite.objects.filter(url=url, nom=nom, type='appels').delete()
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
+ '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', [], {'max_length': '30', 'unique': 'True'})
+ },
+ '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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', [], {'max_length': '3', 'unique': 'True', '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', [], {'max_length': '255', 'unique': 'True'}),
+ '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'},
+ 'approuve': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'contact': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'debut': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'discipline': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discipline'", 'blank': 'True', 'null': 'True', 'to': "orm['savoirs.Discipline']"}),
+ 'discipline_secondaire': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'discipline_secondaire'", 'blank': 'True', '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'}),
+ 'lieu': ('django.db.models.fields.TextField', [], {}),
+ 'mots_cles': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'evenements'", 'blank': 'True', 'null': 'True', 'to': "orm['datamaster_modeles.Pays']"}),
+ 'piece_jointe': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
+ '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': "'c218e2be-1f32-11e0-96c3-90e6ba758372'", 'max_length': '255'}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ '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.profile': {
+ 'Meta': {'object_name': 'Profile'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'serveurs': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['savoirs.Serveur']", 'symmetrical': 'False', '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', [], {'to': "orm['savoirs.ListSet']", 'symmetrical': 'False', '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']
# Actualités
class SourceActualite(models.Model):
+ TYPE_CHOICES = (
+ ('actu', 'Actualités'),
+ ('appels', "Appels d'offres"),
+ )
+
nom = models.CharField(max_length=255)
- url = models.CharField(max_length=255, verbose_name='URL')
+ url = models.CharField(max_length=255, verbose_name='URL', blank=True)
+ type = models.CharField(max_length=10, default='actu', choices=TYPE_CHOICES)
class Meta:
verbose_name = u'fil RSS syndiqué'
verbose_name_plural = u'fils RSS syndiqués'
def __unicode__(self,):
- return u"%s" % self.nom
+ return u"%s (%s)" % (self.nom, self.get_type_display())
def update(self):
"""Mise à jour du fil RSS."""
+ if not self.url:
+ return
feed = feedparser.parse(self.url)
for entry in feed.entries:
if Actualite.all_objects.filter(url=entry.link).count() == 0:
qs = qs.filter(date__lte=max)
return qs
+ def filter_type(self, type):
+ return self.filter(source__type=type)
+
class ActualiteSphinxQuerySet(SEPSphinxQuerySet):
def __init__(self, model=None):
qs = qs.filter(date__lte=max.toordinal()+365)
return qs
+ TYPE_CODES = {'actu': 1, 'appels': 2}
+ def filter_type(self, type):
+ return self.filter(type=self.TYPE_CODES[type])
+
class ActualiteManager(SEPManager):
def get_query_set(self):
def filter_date(self, min=None, max=None):
return self.get_query_set().filter_date(min=min, max=max)
+ def filter_type(self, type):
+ return self.get_query_set().filter_type(type)
+
class Actualite(models.Model):
id = models.AutoField(primary_key=True, db_column='id_actualite')
titre = models.CharField(max_length=765, db_column='titre_actualite')
date = models.DateField(db_column='date_actualite')
visible = models.BooleanField(db_column='visible_actualite', default=False)
ancienid = models.IntegerField(db_column='ancienId_actualite', blank=True, null=True)
- source = models.ForeignKey(SourceActualite, blank=True, null=True, related_name='actualites')
+ source = models.ForeignKey(SourceActualite, related_name='actualites')
disciplines = models.ManyToManyField(Discipline, blank=True, related_name="actualites")
regions = models.ManyToManyField(Region, blank=True, related_name="actualites", verbose_name='régions')
link = '/'
description = "Agrégateur de ressources scientifiques et pédagogiques de l'AUF"
limitation = 10
+ type = 'actu'
title_template = "savoirs/rss_actualite_titre.html"
description_template = "savoirs/rss_actualite_description.html"
def items(self):
- return Actualite.objects.filter(visible=True).order_by('-date')[:self.limitation]
+ return Actualite.objects.filter(visible=True).filter_type(self.type).order_by('-date')[:self.limitation]
def item_link(self, item):
return item.url
if item.source:
return item.source.nom
+class FilAppels(FilActualite):
+ type = 'appels'
+
class FilEvenement(Feed):
title = "Calendrier des ressources scientifiques et pédagogiques de l'AUF"
link = '/'
def test_actualites(self):
self.check_status_200('/actualites/')
+ self.check_status_200('/rss/actualites/')
+
+ def test_actualite(self):
+ self.check_status_200('/actualites/1/')
+ self.check_status_200('/actualites/2/')
+
+ def test_appels(self):
+ self.check_status_200('/appels/')
+ self.check_status_200('/rss/appels/')
def test_chercheurs(self):
self.check_status_200('/chercheurs/')
ressources = ressources.filter_region(region)
chercheurs = chercheurs.filter_region(region)
sites = sites.filter_region(region)
- actualites = actualites.order_by('-date')[0:4]
+ actualites_actu = actualites.filter_type('actu').order_by('-date')[0:4]
+ appels = actualites.filter_type('appels').order_by('-date')[0:4]
evenements = evenements.order_by('-debut')[0:4]
ressources = ressources.order_by('-id')[0:4]
chercheurs = chercheurs.order_by('-date_modification')[0:10]
sites = sites.order_by('-date_maj')[0:4]
return render_to_response(
"savoirs/index.html",
- dict(actualites=actualites, evenements=evenements,
+ dict(actualites=actualites_actu, appels=appels, evenements=evenements,
caldav_url=configuration['calendrier_publique'],
ressources=ressources, chercheurs=chercheurs, sites=sites),
context_instance = RequestContext(request))
sites_auf = google_search(0, query)['results']
except:
sites_auf = []
+ actualites_actu = actualites.filter_type('actu')
+ appels = actualites.filter_type('appels')
# Bâtissons une query string pour les liens vers les briques
params = {}
ressources=ressources[0:5], total_ressources=ressources.count(),
evenements=evenements[0:5], total_evenements=evenements.count(),
chercheurs=chercheurs[0:10], total_chercheurs=chercheurs.count(),
- actualites=actualites[0:5], total_actualites=actualites.count(),
+ actualites=actualites_actu[0:5], total_actualites=actualites_actu.count(),
+ appels=appels[0:5], total_appels=appels.count(),
sites=sites[0:5], total_sites=sites.count(),
sites_auf=sites_auf[0:5], briques_query_string=briques_query_string),
context_instance = RequestContext(request)
context_instance = RequestContext(request))
# actualités
-def actualite_index(request):
+def actualite_index(request, type='actu'):
search_form = ActualiteSearchForm(request.GET)
- actualites = search_form.get_query_set()
+ actualites = search_form.get_query_set().filter_type(type)
excerpt = excerpt_function(Actualite.objects, search_form.cleaned_data['q'])
+ if type == 'appels':
+ template = "savoirs/appels_index.html"
+ else:
+ template = "savoirs/actualite_index.html"
return render_to_response(
- "savoirs/actualite_index.html",
+ template,
dict(actualites=actualites, search_form=search_form,
excerpt=excerpt, nb_resultats=actualites.count()),
context_instance = RequestContext(request))
a.titre_actualite AS titre,
a.texte_actualite AS texte,
TO_DAYS(a.date_actualite) AS date,
+ CASE s.type WHEN 'actu' THEN 1 WHEN 'appels' THEN 2 END AS type,
GROUP_CONCAT(DISTINCT r.nom) AS regions,
GROUP_CONCAT(DISTINCT d.nom_discipline) AS disciplines
FROM actualite a
+ INNER JOIN savoirs_sourceactualite s ON s.id = a.source_id
LEFT JOIN actualite_regions ar ON ar.actualite_id = a.id_actualite
LEFT JOIN ref_region r ON r.id = ar.region_id
LEFT JOIN actualite_disciplines ad ON ad.actualite_id = a.id_actualite
WHERE a.visible_actualite
GROUP BY a.id_actualite''',
sql_query_info='SELECT * from actualite WHERE id_actualite=$id',
- sql_attr_uint=['date']
+ sql_attr_uint=['date', 'type'],
)
emit_source('savoirsenpartage_evenements',
<a href="{% url savoirs.views.index %}">Accueil</a> |
<a href="{% url chercheurs.views.index %}">Répertoire</a> |
<a href="{% url savoirs.views.ressource_index %}">Ressources</a> |
- <a href="{% url savoirs.views.actualite_index %}">Actualités</a> |
+ <a href="{% url actualites %}">Actualités</a> |
+ <a href="{% url appels %}">Appels d'offres</a> |
<a href="{% url savoirs.views.evenement_index %}">Agenda</a> |
<a href="{% url sitotheque.views.index %}">Sites</a>
</div>
Les sites retenus ici ont été créés en partenariat par l'AUF et des universités membres : cours en ligne, revues électroniques, fonds patrimoniaux, etc. constituent une source importante de ressources pédagogiques et scientifiques, à la disposition de tous.
</p>
-<h2><a href="{% url savoirs.views.actualite_index %}">... des actualités scientifiques</a></h2>
+<h2><a href="{% url actualites %}">... des actualités scientifiques</a></h2>
<p>
Les actualités scientifiques proposés sur différents sites de l'AUF sont reprises ici.
{% block contenu %}
<h1>{{ actualite.titre }}</h1>
<p>{{ actualite.date|date:"d F Y" }}</p>
-<p>{{ actualite.texte }}</p>
-<p><span class="label">Source:</span> {{ actualite.source }}<br>
+<p>{{ actualite.texte|safe }}</p>
+<p><span class="label">Source:</span> {{ actualite.source.nom }}<br>
<span class="label">Disciplines:</span> {{ actualite.disciplines.all|join:", " }}<br>
<span class="label">Régions:</span> {{ actualite.regions.all|join:", " }}</p>
<a href="{{ actualite.url }}">Lire la suite...</a>
<div class="resultatRecherche">
<div>{{ actualite.date|date:"d F Y" }}</div>
<div class="titre">
- <a href="{% url savoirs.views.actualite actualite.id %}">{{ actualite.titre|apply:excerpt }}</a>
+ <a href="{% url actualite actualite.id %}">{{ actualite.titre|apply:excerpt }}</a>
</div>
- <div>{{ actualite.texte|apply:excerpt }}</div>
+ <div>{{ actualite.texte|apply:excerpt|safe }}</div>
{% if actualite.source %}
<div><span class="label">Source:</span> {{ actualite.source.nom }}</div>
{% endif %}
</div>
-
--- /dev/null
+{% extends "container_base.html" %}
+
+{% load pagination_tags %}
+
+{% block contenu %}
+{% autopaginate actualites 10 %}
+
+<h1>
+ Appels d'offres scientifiques <a href="/rss/appels"><img src="/media/img/feed.png" alt="fil RSS"/></a>
+</h1>
+
+<h2>Recherche</h2>
+
+<form action="" method="get">
+ <table>
+ {{ search_form.as_table }}
+ <tr><th></th><td><input type="submit" value="Rechercher" /></td></tr>
+ </table>
+</form>
+
+<h2>Résultats</h2>
+<div class="sous-titre">{{ nb_resultats }} appels d'offres correspondant à votre recherche</div>
+
+<div class="pagination">{% paginate %}</div>
+{% for actualite in actualites %}
+{% include "savoirs/actualite_resultat.html" %}
+{% endfor %}
+<div class="pagination">{% paginate %}</div>
+{% endblock %}
</div>
<div id="actualites" class="box">
<h1>
- <a href="{% url savoirs.views.actualite_index %}">Actualités</a>
+ <a href="{% url actualites %}">Actualités</a>
<a id="rss-actualites" href="/rss/actualites"><img src="/media/img/feed.png" /></a>
</h1>
<ul class="actions-accueil">
- <li><a href="{% url savoirs.views.actualite_index %}">Toutes les actualités</a></li>
+ <li><a href="{% url actualites %}">Toutes les actualités</a></li>
</ul>
<ul class="liste-de-l-accueil">
<li>
<div>{{ actualite.date|date:"d F Y" }}</div>
<div class="titre">
- <a href="{% url savoirs.views.actualite actualite.id %}">{{ actualite.titre|truncatewords:20 }}</a>
+ <a href="{% url actualite actualite.id %}">{{ actualite.titre|truncatewords:20 }}</a>
</div>
{% if actualite.source %}
<div>source: {{ actualite.source.nom }}</div>
{% endfor %}
</ul>
</div>
+ <div id="appels" class="box">
+ <h1>
+ <a href="{% url appels %}">Appels d'offres scientifiques</a>
+ <a id="rss-actualites" href="/rss/appels"><img src="/media/img/feed.png" /></a>
+ </h1>
+ <ul class="actions-accueil">
+ <li><a href="{% url appels %}">Touts les appels d'offres</a></li>
+ </ul>
+
+ <ul class="liste-de-l-accueil">
+ {% for appel in appels %}
+ <li>
+ <div>{{ appel.date|date:"d F Y" }}</div>
+ <div class="titre">
+ <a href="{% url actualite appel.id %}">{{ appel.titre|truncatewords:20 }}</a>
+ </div>
+ {% if appel.source %}
+ <div>source: {{ appel.source.nom }}</div>
+ {% endif %}
+ </li>
+ {% endfor %}
+ </ul>
+ </div>
</div>
<div class="demi-droite">
<div id="ressources" class="box">
{% if actualites %}
<h2>Actualités ({{ actualites|length }} sur {{ total_actualites }})</h2>
<div class="sous-titre">
- <a class="action" href="{% url savoirs.views.actualite_index %}{{ briques_query_string }}"
+ <a class="action" href="{% url actualites %}{{ briques_query_string }}"
>Voir toutes les actualités correspondant à cette recherche</a>
</div>
{% for actualite in actualites %}
{% endfor %}
{% endif %}
+{% if appels %}
+ <h2>Appels d'offres scientifiques ({{ appels|length }} sur {{ total_appels }})</h2>
+ <div class="sous-titre">
+ <a class="action" href="{% url appels %}{{ briques_query_string }}"
+ >Voir tous les appels d'offres correspondant à cette recherche</a>
+ </div>
+ {% for actualite in appels %}
+ {% include "savoirs/actualite_resultat.html" %}
+ {% endfor %}
+{% endif %}
+
{% if evenements %}
<h2>Évènements ({{ evenements|length }} sur {{ total_evenements }})</h2>
<div class="sous-titre">
{% endfor %}
{% endif %}
-{% if not ressources and not actualites and not evenements and not chercheurs and not sites and not sites_auf %}
+{% if not ressources and not actualites and not appels and not evenements and not chercheurs and not sites and not sites_auf %}
<h2>Aucun résultat</h2>
<p><a href="{% url savoirs.views.index %}">Retour à la page d'accueil</a></p>
{% endif %}
-{{ obj.texte }}
+{{ obj.texte|safe }}
-{{ obj.titre }}
+{{ obj.titre|safe }}
from django.conf.urls.defaults import patterns, include, handler500, handler404, url
from django.conf import settings
from django.contrib import admin
-from savoirs.rss import FilActualite, FilEvenement
+from savoirs.rss import FilActualite, FilEvenement, FilAppels
admin.autodiscover()
handler404 = "views.page_404"
site_feeds = {'actualites': FilActualite,
- 'agenda': FilEvenement }
+ 'agenda': FilEvenement,
+ 'appels': FilAppels
+ }
# Les URLs suivantes peuvent être préfixées de la discipline et/ou la
(r'^ressources/(?P<id>\d+)/$', 'savoirs.views.ressource_retrieve'),
# actualités
- (r'^actualites/$', 'savoirs.views.actualite_index'),
- (r'^actualites/(?P<id>\d+)/$', 'savoirs.views.actualite'),
+ (r'^actualites/$', 'savoirs.views.actualite_index', {}, 'actualites'),
+ (r'^actualites/(?P<id>\d+)/$', 'savoirs.views.actualite', {}, 'actualite'),
+ (r'^appels/$', 'savoirs.views.actualite_index', dict(type='appels'), 'appels'),
# sites
(r'^sites/$', 'sitotheque.views.index'),
[django]
recipe = djangorecipe
-version = 1.1.1
+version = 1.1.3
project = auf_savoirs_en_partage
wsgi = true
settings = production