Documentation de la mise à jour de SEP sur les serveurs.
authorEric Mc Sween <eric.mcsween@gmail.com>
Wed, 10 Nov 2010 16:39:47 +0000 (11:39 -0500)
committerEric Mc Sween <eric.mcsween@gmail.com>
Wed, 10 Nov 2010 16:39:47 +0000 (11:39 -0500)
.gitignore
auf_savoirs_en_partage/development.py
auf_savoirs_en_partage/doc/mise-a-jour.txt [new file with mode: 0644]
auf_savoirs_en_partage/savoirs/admin.py
auf_savoirs_en_partage/savoirs/models.py
auf_savoirs_en_partage/templates/savoirs/evenement.html

index ac7dfc3..4fe96c4 100644 (file)
@@ -34,6 +34,7 @@ src
 
 auf_savoirs_en_partage_django/backend_config.py
 
-# Cache de django_compressor
+# Fichiers écrits par le serveur
 
 /auf_savoirs_en_partage/media/CACHE
+/auf_savoirs_en_partage/media/agenda
index bda3ff6..d92d94d 100644 (file)
@@ -16,4 +16,4 @@ MIDDLEWARE_CLASSES += ('savoirs.middleware.ProfileMiddleware',)
 
 # css/js compression
 
-COMPRESS = True
+# COMPRESS = True
diff --git a/auf_savoirs_en_partage/doc/mise-a-jour.txt b/auf_savoirs_en_partage/doc/mise-a-jour.txt
new file mode 100644 (file)
index 0000000..4a9b1a1
--- /dev/null
@@ -0,0 +1,19 @@
+Ce document décrit les modifications à appliquer au serveur lors des mises à
+jour.
+
+
+Migrations de la base de données
+--------------------------------
+
+Les migrations de la base de données se trouvent dans une série de scripts SQL
+datés. On les trouvera dans le répertoire sql/ . Il faut donc appliquer les
+scripts qui n'ont pas été appliqués depuis la dernière mise à jour, dans
+l'ordre.
+
+Répertoires dans lesquels le serveur web écrit
+----------------------------------------------
+
+Certains répertoires doivent être accessibles en écriture par le serveur web:
+
+- media/CACHE
+- media/agenda/pj
index b4b792b..92e23fb 100644 (file)
@@ -231,7 +231,7 @@ class EvenementAdmin(admin.ModelAdmin):
     list_filter = ('approuve', 'regions', 'discipline', 'discipline_secondaire')
     list_display = ('titre', 'debut', 'fin', 'lieu', 'approuve')
     fields = ['titre', 'discipline', 'discipline_secondaire', 'mots_cles',
-              'type', 'fuseau', 'debut', 'fin', 'lieu', 'regions',
+              'type', 'fuseau', 'debut', 'fin', 'lieu', 'piece_jointe', 'regions',
               'description', 'contact', 'url', 'approuve']
     actions = ['assigner_regions', 'assigner_disciplines']
 
index 29406c2..90f1891 100644 (file)
@@ -7,7 +7,7 @@ from django.db.models import Q, Max
 from django.db.models.signals import pre_delete
 from auf_savoirs_en_partage.backend_config import RESOURCES
 from savoirs.globals import META
-from settings import CALENDRIER_URL
+from settings import CALENDRIER_URL, SITE_ROOT_URL
 from datamaster_modeles.models import Thematique, Pays, Region
 from lib.calendrier import combine
 from caldav.lib import error
@@ -150,7 +150,7 @@ class Evenement(models.Model):
                     (None, u'Autre'))
     TIME_ZONE_CHOICES = build_time_zone_choices()
 
-    uid = models.CharField(max_length = 255, default = str(uuid.uuid1()))
+    uid = models.CharField(max_length=255, default=str(uuid.uuid1()))
     approuve = models.BooleanField(default=False, verbose_name=u'approuvé')
     titre = models.CharField(max_length=255)
     discipline = models.ForeignKey('Discipline', related_name = "discipline", 
@@ -158,16 +158,16 @@ class Evenement(models.Model):
     discipline_secondaire = models.ForeignKey('Discipline', related_name="discipline_secondaire", 
                                               verbose_name=u"discipline secondaire", 
                                               blank=True, null=True)
-    mots_cles = models.TextField('Mots-Clés', blank = True, null = True)
+    mots_cles = models.TextField('Mots-Clés', blank=True, null=True)
     type = models.CharField(max_length=255, choices=TYPE_CHOICES)
     lieu = models.TextField()
-    debut = models.DateTimeField(default = datetime.datetime.now)
-    fin = models.DateTimeField(default = datetime.datetime.now)
+    debut = models.DateTimeField(default=datetime.datetime.now)
+    fin = models.DateTimeField(default=datetime.datetime.now)
     fuseau = models.CharField(max_length=100, choices=TIME_ZONE_CHOICES, verbose_name='fuseau horaire')
-    description = models.TextField(blank = True, null = True)
-    #fichiers = TODO?
-    contact = models.TextField(blank = True, null = True)
-    url = models.CharField(max_length=255, blank = True, null = True)
+    description = models.TextField(blank=True, null=True)
+    contact = models.TextField(blank=True, null=True)
+    url = models.CharField(max_length=255, blank=True, null=True)
+    piece_jointe = models.FileField(upload_to='agenda/pj', blank=True, verbose_name='pièce jointe')
     regions = models.ManyToManyField(Region, blank=True, related_name="evenements", verbose_name='régions')
 
     objects = EvenementManager()
@@ -237,6 +237,11 @@ class Evenement(models.Model):
             cal.vevent.add('url').value = self.url
         if len(self.lieu) > 0:
             cal.vevent.add('location').value = self.lieu
+        if self.piece_jointe:
+            url = self.piece_jointe.url
+            if not url.startswith('http://'):
+                url = SITE_ROOT_URL + url
+            cal.vevent.add('attach').value = url
         return cal
 
     def update_vevent(self,):
@@ -399,8 +404,6 @@ class RecordQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         else:
             return super(RecordQuerySet, self).filter(*args, **kwargs)
 
-
-
 class Record(models.Model):
     
     #fonctionnement interne
@@ -466,7 +469,6 @@ class Record(models.Model):
 
     def assigner_disciplines(self, disciplines):
         self.disciplines.add(*disciplines)
-
     
 class Serveur(models.Model):
     """Identification d'un serveur d'ou proviennent les références"""
index afbcc17..3604663 100644 (file)
@@ -8,13 +8,15 @@
     <tr>
         <th>Type</th>
         <td>{{ evenement.type }}</td>
-    </tr>    
+    </tr>
+    {% if evenement.discipline %}
     <tr>
         <th>Discipline{% if evenement.discipline_secondaire %}s{% endif %}</th>
         <td>{{ evenement.discipline }}
             {% if evenement.discipline_secondaire %}, {{ evenement.discipline_secondaire }}{% endif %}
         </td>
     </tr>    
+    {% endif %}
     <tr>
       <th width="120px">Début</th>
       <td>{{ evenement.debut|date:"d/m/Y H\hi" }} (UTC)</td>
       <th>Fin</th>
       <td>{{ evenement.fin|date:"d/m/Y H\hi" }} (UTC)</td>
     </tr>
+    {% if evenement.description %}
     <tr>
       <th>Description</th>
       <td>{{ evenement.description|linebreaksbr }}</td>
     </tr>
+    {% endif %}
     {% if evenement.mots_cles %}
     <tr>
       <th>Mots-clés</th>