Premier gros commit
authormarc.nachin <you@example.commarc.nachin@auf.org>
Wed, 12 Feb 2014 10:58:16 +0000 (11:58 +0100)
committermarc.nachin <you@example.commarc.nachin@auf.org>
Wed, 12 Feb 2014 10:58:16 +0000 (11:58 +0100)
56 files changed:
db.sqlite
project/accueil/__init__.py [new file with mode: 0755]
project/accueil/admin.py [new file with mode: 0644]
project/accueil/context_processors.py [new file with mode: 0644]
project/accueil/models.py [new file with mode: 0755]
project/accueil/tests.py [new file with mode: 0755]
project/accueil/views.py [new file with mode: 0644]
project/article/__init__.py [new file with mode: 0644]
project/article/admin.py [new file with mode: 0644]
project/article/context_processors.py [new file with mode: 0644]
project/article/models.py [new file with mode: 0755]
project/article/tests.py [new file with mode: 0755]
project/article/views.py [new file with mode: 0755]
project/contact/__init__.py [new file with mode: 0755]
project/contact/cms_plugins.py [new file with mode: 0755]
project/contact/forms.py [new file with mode: 0755]
project/contact/models.py [new file with mode: 0755]
project/contact/templates/contact.html [new file with mode: 0755]
project/contact/templates/email.txt [new file with mode: 0755]
project/feeds.py [new file with mode: 0644]
project/media/actualite/174728_2549.jpg [new file with mode: 0755]
project/media/actualite/share_this_all.jpg [new file with mode: 0755]
project/media/slider/174728_2549.jpg [new file with mode: 0755]
project/media/slider/174728_2549_1.jpg [new file with mode: 0755]
project/media/slider/18335758.jpg [new file with mode: 0755]
project/media/slider/18335758_1.jpg [new file with mode: 0755]
project/media/slider/450115_13777582.jpg [new file with mode: 0755]
project/media/slider/450115_13777582_1.jpg [new file with mode: 0755]
project/media/slider/Meeting-Rentals.jpg [new file with mode: 0755]
project/media/slider/stk162448rke.jpg [new file with mode: 0755]
project/settings.py
project/static/css/style2.css
project/static/img/d1.jpg [new file with mode: 0644]
project/static/img/d2.jpg [new file with mode: 0644]
project/static/img/d3.jpg [new file with mode: 0644]
project/static/img/d4.jpg [new file with mode: 0644]
project/static/img/d5.jpg [new file with mode: 0644]
project/static/img/d6.jpg [new file with mode: 0644]
project/static/img/ex.png [deleted file]
project/static/img/logo.jpg [new file with mode: 0644]
project/static/img/montreal.png [deleted file]
project/static/img/puce.png [new file with mode: 0644]
project/static/js/unslider.min.js [new file with mode: 0644]
project/templates/accueil.html
project/templates/actualite.html [deleted file]
project/templates/actualite_detail.html
project/templates/appel_detail.html [new file with mode: 0644]
project/templates/base.html
project/templates/page.html
project/templates/page_actualite.html
project/templates/page_appel.html [new file with mode: 0644]
project/templates/plan.html [new file with mode: 0644]
project/templates/search.html
project/templates/side.html [new file with mode: 0644]
project/urls.py
project/views.py [new file with mode: 0755]

index 6987c5f..36b3695 100644 (file)
Binary files a/db.sqlite and b/db.sqlite differ
diff --git a/project/accueil/__init__.py b/project/accueil/__init__.py
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/project/accueil/admin.py b/project/accueil/admin.py
new file mode 100644 (file)
index 0000000..0cd55ec
--- /dev/null
@@ -0,0 +1,46 @@
+# coding: utf8
+from project.accueil.models import *
+from django.contrib import admin
+from django.db import models
+
+class DiaporamaAdmin(admin.ModelAdmin):
+    
+        
+    def show_image(self, obj):
+      return "<img src='../../../media/%s' style='height:90px;'>" % obj.image
+    show_image.allow_tags = True #permet de sortir du html#
+    show_image.short_description = 'Image'
+        
+    list_display = ('show_image', 'status', 'date_pub', 'titre')
+    list_display_links = ('status', 'show_image')
+    search_fields = ['titre']
+    
+    def queryset(self, request):
+        
+        qs = self.model._default_manager.get_query_set()
+
+        if request.user.is_superuser:
+            return qs
+
+        return qs
+        
+class MediaAdmin(admin.ModelAdmin):
+        
+    list_display = ('date_pub','lien_twitter','lien_facebook','lien_rss','lien_youtube')
+    list_display_links = ('date_pub',)
+    
+class BandeauAdmin(admin.ModelAdmin):
+        
+    list_display = ('date_pub','texte','lien')
+    list_display_links = ('date_pub',)
+    
+class MotAdmin(admin.ModelAdmin):
+        
+    list_display = ('date_pub','texte',)
+    list_display_links = ('date_pub',)
+
+
+admin.site.register(Diaporama, DiaporamaAdmin)
+admin.site.register(Media, MediaAdmin)
+admin.site.register(Bandeau, BandeauAdmin)
+admin.site.register(Mot, MotAdmin)
\ No newline at end of file
diff --git a/project/accueil/context_processors.py b/project/accueil/context_processors.py
new file mode 100644 (file)
index 0000000..f8ce573
--- /dev/null
@@ -0,0 +1,28 @@
+from accueil.models import *
+from django.template import Context, RequestContext
+import datetime
+
+
+def list_slider(request):
+    list = Diaporama.objects.filter(status=3)
+    return {
+        'slider_list' : list
+    }
+    
+def list_media(request):
+    list = Media.objects.all().order_by('date_pub')
+    return {
+        'media_list' : list
+    }
+    
+def list_bandeau(request):
+    list = Bandeau.objects.all().order_by('date_pub')
+    return {
+        'bandeau_list' : list
+    }
+    
+def list_mot(request):
+    list = Mot.objects.all().order_by('date_pub')
+    return {
+        'mot_list' : list
+    }
\ No newline at end of file
diff --git a/project/accueil/models.py b/project/accueil/models.py
new file mode 100755 (executable)
index 0000000..a5292a5
--- /dev/null
@@ -0,0 +1,42 @@
+# coding: utf8
+from django.db import models
+
+class Diaporama(models.Model):
+    image = models.ImageField(null=True, blank=True, upload_to='slider')
+    titre = models.CharField(max_length=200)
+    lien = models.URLField(max_length=200, null=True, blank=True)
+    description = models.TextField(max_length=100, null=True, blank=True)
+    date_pub = models.DateField(null=True, blank=True)
+    status = models.CharField(max_length=1, default='3', null=False, blank=False, choices=(('1', 'En cours de redaction'), ('2', 'Propose a la publication'), ('3', 'Publie en Ligne'), ('4', 'A supprimer')))
+    
+    class Meta:
+         verbose_name = "Gérer le diaporama"
+         verbose_name_plural = "Gérer les diaporamas"
+    
+class Media(models.Model):
+    lien_twitter = models.URLField(max_length=200, null=True, blank=True)
+    lien_facebook = models.URLField(max_length=200, null=True, blank=True)
+    lien_rss = models.URLField(max_length=200, null=True, blank=True)
+    lien_youtube = models.URLField(max_length=200, null=True, blank=True)
+    date_pub = models.DateField('date de derniere modification', null=True, blank=True)
+    
+    class Meta:
+         verbose_name = "Gérer les liens des médias sociaux"
+         verbose_name_plural = "Gérer les liens des médias sociaux"
+       
+class Bandeau(models.Model):
+    texte = models.CharField(max_length=400)
+    lien = models.URLField(max_length=200, null=True, blank=True)
+    date_pub = models.DateField('date de derniere modification', null=True, blank=True)
+    
+    class Meta:
+         verbose_name = "Gérer le texte du bandeau défilant"
+         verbose_name_plural = "Gérer le texte du bandeau défilant"
+         
+class Mot(models.Model):
+    texte = models.TextField()
+    date_pub = models.DateField('date de derniere modification', null=True, blank=True)
+    
+    class Meta:
+         verbose_name = "Gérer le mot du directeur"
+         verbose_name_plural = "Gérer le mot du directeur"
\ No newline at end of file
diff --git a/project/accueil/tests.py b/project/accueil/tests.py
new file mode 100755 (executable)
index 0000000..501deb7
--- /dev/null
@@ -0,0 +1,16 @@
+"""
+This file demonstrates writing tests using the unittest module. These will pass
+when you run "manage.py test".
+
+Replace this with more appropriate tests for your application.
+"""
+
+from django.test import TestCase
+
+
+class SimpleTest(TestCase):
+    def test_basic_addition(self):
+        """
+        Tests that 1 + 1 always equals 2.
+        """
+        self.assertEqual(1 + 1, 2)
diff --git a/project/accueil/views.py b/project/accueil/views.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/project/article/__init__.py b/project/article/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/project/article/admin.py b/project/article/admin.py
new file mode 100644 (file)
index 0000000..086f125
--- /dev/null
@@ -0,0 +1,52 @@
+# coding: utf8
+from project.article.models import *
+from django.db import models
+from django.contrib import admin
+from tinymce.widgets import TinyMCE
+
+class ActualiteAdmin(admin.ModelAdmin):
+    prepopulated_fields = {'slug': ['titre']}
+    fieldsets = [
+        ('Article', {'fields': ['status', 'date_pub', 'titre', 'slug', 'image', 'texte'], 'classes': ['wide']}),
+    ]
+    
+    formfield_overrides = {
+        models.TextField: {'widget': TinyMCE(attrs={'cols': 60, 'rows': 24}, )},
+    }
+    
+    def show_image2(self, obj):
+        if obj.image:
+            return "<img src='../../../media/%s' style='height:40px;'>" % obj.image
+        else:
+            return "<img src='../../../static/img/logo.jpg' style='height:40px;'>"
+    show_image2.allow_tags = True #permet de sortir du html#
+    show_image2.short_description = 'Image'
+
+    list_display = ('status', 'show_image2', 'titre', 'date_pub')
+    list_display_links = ('status', 'titre')
+    search_fields = ['titre']
+    
+class AppelAdmin(admin.ModelAdmin):
+    prepopulated_fields = {'slug': ['titre']}
+    fieldsets = [
+        ('Article', {'fields': ['status', 'date_fin', 'date_pub', 'titre', 'slug', 'image', 'texte'], 'classes': ['wide']}),
+    ]
+    
+    formfield_overrides = {
+        models.TextField: {'widget': TinyMCE(attrs={'cols': 60, 'rows': 24}, )},
+    }
+    
+    def show_image2(self, obj):
+        if obj.image:
+            return "<img src='../../../media/%s' style='height:40px;'>" % obj.image
+        else:
+            return "<img src='../../../static/img/logo.jpg' style='height:40px;'>"
+    show_image2.allow_tags = True #permet de sortir du html#
+    show_image2.short_description = 'Image'
+
+    list_display = ('status', 'show_image2', 'titre', 'date_fin', 'date_pub')
+    list_display_links = ('status', 'titre')
+    search_fields = ['titre']
+
+admin.site.register(Appel, AppelAdmin)
+admin.site.register(Actualite, ActualiteAdmin)
\ No newline at end of file
diff --git a/project/article/context_processors.py b/project/article/context_processors.py
new file mode 100644 (file)
index 0000000..b4060b9
--- /dev/null
@@ -0,0 +1,20 @@
+from article.models import *
+from django.template import Context, RequestContext
+import datetime
+
+
+def list_actu(request):
+    list = Actualite.objects.filter(status=3)[:4]
+    list2 = Actualite.objects.filter(status=3)
+    return {
+        'actu_list' : list,
+        'actu_list2' : list2
+    }
+    
+def list_appel(request):
+    list = Appel.objects.filter(status=3)[:4]
+    list2 = Appel.objects.filter(status=3)
+    return {
+        'appel_list' : list,
+        'appel_list2' : list2
+    }
\ No newline at end of file
diff --git a/project/article/models.py b/project/article/models.py
new file mode 100755 (executable)
index 0000000..b265c79
--- /dev/null
@@ -0,0 +1,43 @@
+# coding: utf8
+from django.db import models
+
+class Actualite(models.Model):
+    titre = models.CharField(max_length=200)
+    slug = models.SlugField(unique=True)
+    texte = models.TextField()
+    image = models.ImageField(null=True, blank=True, upload_to='actualite')
+    date_pub = models.DateField()
+    date_mod = models.DateTimeField('date de derniere modification', auto_now_add=True)
+    status = models.CharField(max_length=1, null=False, default='3', blank=False, choices=(('1', 'En cours de redaction'), ('2', 'Propose a la publication'), ('3', 'Publie en Ligne'), ('4', 'A supprimer')))
+    
+    class Meta:
+        ordering = ('-date_pub',)
+        verbose_name = "Gérer les actualités"
+        verbose_name_plural = "Gérer les actualités"
+    
+    def __unicode__(self):
+        return self.titre  
+
+    def get_absolute_url(self):
+        return "/actualites/%s/" %self.slug
+        
+class Appel(models.Model):
+    titre = models.CharField(max_length=200)
+    slug = models.SlugField(unique=True)
+    texte = models.TextField()
+    image = models.ImageField(null=True, blank=True, upload_to='actualite')
+    date_fin = models.DateField(null=True, blank=True)
+    date_pub = models.DateField()
+    date_mod = models.DateTimeField('date de derniere modification', auto_now_add=True)
+    status = models.CharField(max_length=1, null=False, default='3', blank=False, choices=(('1', 'En cours de redaction'), ('2', 'Propose a la publication'), ('3', 'Publie en Ligne'), ('4', 'A supprimer')))
+    
+    class Meta:
+        ordering = ('-date_pub',)
+        verbose_name = "Gérer les appels d\'offres"
+        verbose_name_plural = "Gérer les appels d\'offres"
+    
+    def __unicode__(self):
+        return self.titre  
+
+    def get_absolute_url(self):
+        return "/appels-offre/%s/" %self.slug
\ No newline at end of file
diff --git a/project/article/tests.py b/project/article/tests.py
new file mode 100755 (executable)
index 0000000..501deb7
--- /dev/null
@@ -0,0 +1,16 @@
+"""
+This file demonstrates writing tests using the unittest module. These will pass
+when you run "manage.py test".
+
+Replace this with more appropriate tests for your application.
+"""
+
+from django.test import TestCase
+
+
+class SimpleTest(TestCase):
+    def test_basic_addition(self):
+        """
+        Tests that 1 + 1 always equals 2.
+        """
+        self.assertEqual(1 + 1, 2)
diff --git a/project/article/views.py b/project/article/views.py
new file mode 100755 (executable)
index 0000000..59b60da
--- /dev/null
@@ -0,0 +1,15 @@
+# Create your views here.
+from article.models import *
+from django.shortcuts import render_to_response, get_object_or_404, get_list_or_404
+from django.template import Context, RequestContext
+from django.shortcuts import redirect
+from django.http import HttpResponse
+from django.core.paginator import Paginator
+
+def actualite_detail(request, slug):
+    p = get_object_or_404(Actualite, slug=slug)
+    return render_to_response('actualite_detail.html', {'actualite': p,'page_slug': 'actualites/', 'page_title': 'Actualite'}, context_instance = RequestContext(request))
+    
+def appel_detail(request, slug):
+    p = get_object_or_404(Appel, slug=slug)
+    return render_to_response('appel_detail.html', {'appel': p,'page_slug': 'appels-offre/', 'page_title': 'Appels offre'}, context_instance = RequestContext(request))
\ No newline at end of file
diff --git a/project/contact/__init__.py b/project/contact/__init__.py
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/project/contact/cms_plugins.py b/project/contact/cms_plugins.py
new file mode 100755 (executable)
index 0000000..8925ea6
--- /dev/null
@@ -0,0 +1,33 @@
+from django.utils.translation import ugettext_lazy as _
+from cms.plugin_base import CMSPluginBase
+from cms.plugin_pool import plugin_pool
+from models import Contact
+from forms import ContactForm
+
+class ContactPlugin(CMSPluginBase):
+    model = Contact
+    name = _("Contact Form")
+    render_template = "contact.html"
+    
+    def render(self, context, instance, placeholder):
+       request = context['request']
+
+       if request.method == "POST":
+               form = ContactForm(request.POST)
+               if form.is_valid():
+                       form.send(instance.site_email)
+                       context.update( {
+                               'contact': instance,
+                               })
+                       return context
+       else:
+               form = ContactForm()
+
+       
+        context.update({
+               'contact': instance,
+               'form': form,
+               })
+        return context
+    
+plugin_pool.register_plugin(ContactPlugin)
diff --git a/project/contact/forms.py b/project/contact/forms.py
new file mode 100755 (executable)
index 0000000..e84e261
--- /dev/null
@@ -0,0 +1,22 @@
+from django import forms
+from django.core.mail import EmailMessage
+from django.template.loader import render_to_string
+
+class ContactForm(forms.Form):
+       email   = forms.EmailField()
+       subject = forms.CharField()
+       content = forms.CharField(widget=forms.Textarea())
+
+        def send(self, site_email):
+                email_message = EmailMessage(
+                                       self.cleaned_data['subject'],
+                                       render_to_string("email.txt", {
+                                                       'data': self.cleaned_data,
+                                       }),
+                                       site_email,
+                                       [site_email],
+                                       headers = {
+                                               'Reply-To': self.cleaned_data['email']
+                                               },)
+                email_message.send(fail_silently=True)
+       
diff --git a/project/contact/models.py b/project/contact/models.py
new file mode 100755 (executable)
index 0000000..07eb01a
--- /dev/null
@@ -0,0 +1,14 @@
+from django.db import models
+from django.utils.translation import ugettext_lazy as _
+from cms.models.pluginmodel import CMSPlugin
+
+class Contact(CMSPlugin):
+       site_email      = models.EmailField(_('Email reciepient'))
+       email_label     = models.CharField(_('Email sender label'), max_length=100)
+       subject_label   = models.CharField(_('Subject label'), max_length=200)
+       content_label   = models.CharField(_('Message content label'), max_length=100)
+       thanks          = models.CharField(_('Message displayed on successful submit'), max_length=200)
+       submit          = models.CharField(_('Submit button value'), blank=True, max_length=30)
+
+       def __unicode__(self):
+               return self.site_email
diff --git a/project/contact/templates/contact.html b/project/contact/templates/contact.html
new file mode 100755 (executable)
index 0000000..f5c4b32
--- /dev/null
@@ -0,0 +1,46 @@
+{% if form %}
+<div class="bloc_left">
+    <div class="side">
+            <form action="" method="post">{% csrf_token %}
+                               
+                        <table>
+                               <tr><td>{{ contact.email_label }}</td><td>{{ form.email }}</td></tr>
+                            <tr><td colspan="2">
+                                {% if form.email.errors %}
+                                    {% for error in form.email.errors %}
+                                        <span style="color:#CC0000; font-size: 10px">{{ error }}</div>
+                                    {% endfor %}
+                                {% endif %}
+                                </td>
+                               </tr>
+                               
+                        <tr><td>{{ contact.subject_label }}</td><td>{{ form.subject }}</td></tr>
+                        <tr><td colspan="2">
+                            {% if form.subject.errors %}
+                                {% for error in form.subject.errors %}
+                                    <div style="color:#CC0000; font-size: 10px">{{ error }}</div>
+                                {% endfor %}
+                            {% endif %}
+                        </td>
+                        </tr>
+                               
+                        <tr><td>{{ contact.content_label }}</td><td>{{ form.content }}</td></tr>
+                        <tr><td colspan="2">
+                            {% if form.content.errors %}
+                                {% for error in form.content.errors %}
+                                    <div style="color:#CC0000; font-size: 10px">{{ error }}</div>
+                                {% endfor %}
+                            {% endif %}
+                         </td>
+                        </tr>
+                        </table>
+                   
+                        <input type="submit"{% if contact.submit %} value="{{ contact.submit }}"{% endif %} />
+            </form>
+        
+        
+    </div>
+</div>
+{% else %}
+            <h2>{{ contact.thanks }}</h2>
+{% endif %}
\ No newline at end of file
diff --git a/project/contact/templates/email.txt b/project/contact/templates/email.txt
new file mode 100755 (executable)
index 0000000..238ff6a
--- /dev/null
@@ -0,0 +1 @@
+{{ data.content }}
diff --git a/project/feeds.py b/project/feeds.py
new file mode 100644 (file)
index 0000000..c00cc78
--- /dev/null
@@ -0,0 +1,19 @@
+# -*- encoding: utf-8 -*
+from django.contrib.syndication.views import Feed
+from article.models import *
+
+class DerniereActualites(Feed):
+    title = "Actualite IFIC"
+    description = "Liste des dernières actualités"
+    link = "/flux/actualite/"
+
+    def items(self):
+        return Actualite.objects.all()[:10]
+        
+class DerniereAppels(Feed):
+    title = "Appel d\'offres IFIC"
+    description = "Liste des dernières appels d\'offres IFIC"
+    link = "/flux/appels-offre/"
+
+    def items(self):
+        return Appel.objects.all()[:10]
\ No newline at end of file
diff --git a/project/media/actualite/174728_2549.jpg b/project/media/actualite/174728_2549.jpg
new file mode 100755 (executable)
index 0000000..7f15992
Binary files /dev/null and b/project/media/actualite/174728_2549.jpg differ
diff --git a/project/media/actualite/share_this_all.jpg b/project/media/actualite/share_this_all.jpg
new file mode 100755 (executable)
index 0000000..f71851d
Binary files /dev/null and b/project/media/actualite/share_this_all.jpg differ
diff --git a/project/media/slider/174728_2549.jpg b/project/media/slider/174728_2549.jpg
new file mode 100755 (executable)
index 0000000..7f15992
Binary files /dev/null and b/project/media/slider/174728_2549.jpg differ
diff --git a/project/media/slider/174728_2549_1.jpg b/project/media/slider/174728_2549_1.jpg
new file mode 100755 (executable)
index 0000000..7f15992
Binary files /dev/null and b/project/media/slider/174728_2549_1.jpg differ
diff --git a/project/media/slider/18335758.jpg b/project/media/slider/18335758.jpg
new file mode 100755 (executable)
index 0000000..168cd7d
Binary files /dev/null and b/project/media/slider/18335758.jpg differ
diff --git a/project/media/slider/18335758_1.jpg b/project/media/slider/18335758_1.jpg
new file mode 100755 (executable)
index 0000000..168cd7d
Binary files /dev/null and b/project/media/slider/18335758_1.jpg differ
diff --git a/project/media/slider/450115_13777582.jpg b/project/media/slider/450115_13777582.jpg
new file mode 100755 (executable)
index 0000000..0d963e5
Binary files /dev/null and b/project/media/slider/450115_13777582.jpg differ
diff --git a/project/media/slider/450115_13777582_1.jpg b/project/media/slider/450115_13777582_1.jpg
new file mode 100755 (executable)
index 0000000..0d963e5
Binary files /dev/null and b/project/media/slider/450115_13777582_1.jpg differ
diff --git a/project/media/slider/Meeting-Rentals.jpg b/project/media/slider/Meeting-Rentals.jpg
new file mode 100755 (executable)
index 0000000..899e177
Binary files /dev/null and b/project/media/slider/Meeting-Rentals.jpg differ
diff --git a/project/media/slider/stk162448rke.jpg b/project/media/slider/stk162448rke.jpg
new file mode 100755 (executable)
index 0000000..fb1bd5b
Binary files /dev/null and b/project/media/slider/stk162448rke.jpg differ
index bb7a93d..1e941fc 100644 (file)
@@ -60,6 +60,9 @@ INSTALLED_APPS = (
     'sekizai',
     'pagination',
     'tinymce',
+    'article',
+    'accueil',
+    'contact',
 
     # django-cms plugins
     'cms.plugins.text',
@@ -70,6 +73,12 @@ TEMPLATE_CONTEXT_PROCESSORS = DEFAULT_TEMPLATE_CONTEXT_PROCESSORS + (
     'django.core.context_processors.request',
     'cms.context_processors.media',
     'sekizai.context_processors.sekizai',
+    'article.context_processors.list_actu',
+    'article.context_processors.list_appel',
+    'accueil.context_processors.list_slider',
+    'accueil.context_processors.list_media',
+    'accueil.context_processors.list_bandeau',
+    'accueil.context_processors.list_mot',
 )
 
 MIDDLEWARE_CLASSES = DEFAULT_MIDDLEWARE_CLASSES + (
@@ -92,6 +101,8 @@ CMS_TEMPLATES = (
         ('page.html', ('Page Texte')),
         ('submenu.html', ('Page sous Rubrique')),
         ('page_actualite.html', ('Page Actualites')),
+        ('page_appel.html', ('Page Appels offres')),
+        ('plan.html', ('Plan du site')),
 )
 
 SOUTH_TESTS_MIGRATE = False
index dd0fb73..5f62431 100644 (file)
@@ -100,7 +100,6 @@ nav li a{
 /*************************************************************Slideshow********************************************************************************/
 
 #slideshow{  
-    position: relative;  
     width: 360px;  
     height: 219px;  
     padding: 10px;  
@@ -130,75 +129,18 @@ nav li a{
        color: #5E5E5E;
 }      
 
-#slideshow:before, #slideshow:after{  
-    position: absolute;  
-    bottom:16px;  
-    z-index: -10;  
-    width: 50%;  
-    height: 20px;  
-    content: " ";  
-    background: rgba(0,0,0,0.1);  
-    border-radius: 50%;  
-}  
-
-#slideshow:before{  
-       left:0;  
-       transform: rotate(-4deg);  
-}  
-
-#slideshow:after{  
-       right:0;  
-       transform: rotate(4deg);  
-}  
-
-       /* gestion des dimensions et débordement du conteneur */  
-#slideshow .container{  
-       position:relative;  
-       width: 360px;  
-       height: 219px;  
-       overflow: hidden;  
-}  
-       
-    /* un petit espace gris pour la timeline */  
-#slideshow .container:after{  
-       position:absolute;  
-       bottom: 0; left:0;  
-       content: " ";  
-       width: 100%;  
-       /*height: 1px;  */
-       background: #999;  
-}  
-    /* 
-       le conteneur des slides 
-       en largeur il fait 100% x le nombre de slides 
-    */  
-#slideshow .slider{  
-       position: absolute;  
-       left:0; top:0;  
-       width: 400%;  
-       height: 219px;  
-}  
-
-       /* annulation des marges sur figure */  
-#slideshow figure{  
-       position:relative;  
-       display:inline-block;  
+.banner { position: relative; overflow: auto; }
+    .banner li { list-style: none; }
+        .banner ul li { float: left; }
+               
+/* annulation des marges sur figure */  
+.banner figure{  
        padding:0; margin:0;  
-}  
-       
-    /* petit effet de vignette sur les images */  
-#slideshow figure:after{  
-       position: absolute;  
-       display:block;  
-       content: " ";  
-       top:0; left:0;  
-       width: 100%; 
-       height: 100%;  
-       box-shadow: 0 0 30px rgba(0,0,0, 0.3) inset;  
+       position: relative;
 }  
 
-           /* styles des légendes */  
-#slideshow figcaption{  
+/* styles des légendes */  
+.banner figcaption{  
        position:absolute;  
        left:0; right:0; bottom: 0;  
        padding: 10px;  
@@ -209,51 +151,17 @@ nav li a{
        height:auto;
 }  
 
-#slideshow figcaption h5{  
+.banner figcaption h5{  
        margin: 0px 0px 5px 0px;
        font-size:14px;
        color: #fff;  
 }  
 
-#slideshow figcaption p{  
+.banner figcaption p{  
        margin: 0px;
        font-size:12px;
        color: #fff;  
 }  
-       
-       /* fonction d'animation, faut pas que j'oublie de prefixer ! */  
-@keyframes slider{  
-       0%, 20%, 100%   { left: 0 }  
-       25%, 45%        { left: -100% }  
-       50%, 70%        { left: -200% }  
-       75%, 95%        { left: -300% }  
-}  
-
-#slideshow .slider{  
-       animation: slider 22s infinite;  
-}  
-
-#timeline{  
-       position: absolute;  
-       background: #999;  
-       bottom: 8px;  
-       left: 10px;  
-       height: 1px;  
-       background: rgb(214,98,13);  
-       background: rgba(214,98,13,.8);  
-       width: 0;  
-       /* fonction d'animation  
-       animation: timeliner 22s infinite;  */ 
-}  
-
-@keyframes timeliner{  
-       0%, 25%, 50%, 75%, 100% { width: 0;     }  
-       20%, 45%, 70%, 90%      { width: 360px; }  
-}  
-
-#slideshow figcaption{  
-       animation: figcaptionner 32s infinite;  
-}  
   
 
 /*************************************************************Slideshow********************************************************************************/ 
@@ -263,6 +171,14 @@ bandeau{
        display: block;
 }
 
+table{
+       font-size: 12px;
+}
+
+table td{
+       padding: 12px 20px 12px 8px;
+}
+
 article, section, .outil{
 display:inline-block;
 }
@@ -341,6 +257,15 @@ p{
 .gauche p{
        line-height: 20px;
 }
+
+.reseau a{
+       text-decoration: none;
+       color:#5e5e5e;
+}
+
+.reseau a:hover{
+       color: #911735;
+}
        
 /* Cibler les éléments <li> appartenant à un élément de classe "icone" */
 .icone li{
@@ -488,7 +413,15 @@ input, textarea{
 
 
 /*********************************************************************** Bloc de Gauche / Droite ***************************************************************************/
-
+.gauche input[type="submit"]{
+ cursor:pointer;
+ background-color: #911735;
+ border: 0 none;
+ padding: 8px;
+ color: #fff;
+ font-weight: bold;
+}
+       
 #containt_principal .gauche{
        float: left;
        max-width: 700px;
@@ -556,15 +489,38 @@ margin-top: 20px;
        line-height:20px;
 }
 
+%vertical-align {
+  position: relative;
+  top: 50%;
+  -webkit-transform: translateY(-50%);
+  -ms-transform: translateY(-50%);
+  transform: translateY(-50%);
+}
+
+.droit a{
+       text-decoration:none;
+       font-size:13px;
+       color:#5e5e5e;
+       font-weight: normal;
+       width: 100%;
+       padding-right: 6px;
+       vertical-align:middle;
+    display: table-cell;
+}
+
+.droit a:hover, .bloc_right a:hover{
+       color: #911735;
+}
+
 .bloc_right a{
        text-decoration:none;
        font-size:13px;
        color:#5e5e5e;
-       margin-top: 20px;
        font-weight: normal;
-       display: block;
+       padding-right: 6px;
 }
 
+
 bloc-left li, bloc-right li{
        padding-left:20px;
 }
@@ -612,13 +568,78 @@ bloc-left li, bloc-right li{
        /*overflow:hidden;*/
 }
 
+#filariane{
+       margin-top: -4px;
+}
+
+#filariane li {
+       margin: 0px 6px 8px 0px;
+       list-style: none;
+       display: inline-block;
+       font-size: 11px;
+}
+
+#filariane li a{
+       text-decoration: none;
+       color: #5E5E5E;
+       margin-right: 6px;
+}
+
+#filariane li a:hover{
+       color: #911735;
+}
+
+.gauche h1{
+       margin-bottom: 4px;
+}
+
+.gauche .date{
+       margin-bottom: 20px;
+}
+
+.texte img{
+       max-width: 688px;
+       padding: 5px;
+       background-color: #FFFFFF;
+       border: 1px solid #DDDDDD;
+}
+
+.texte ul{
+       margin-left: 20px;
+       padding-top: 11px;
+       padding-bottom: 7px;
+       list-style: none;
+}
+
+.texte ul li{
+       margin-bottom: 6px;
+       font-size: inherit;
+       padding-left: 20px;
+       font-size: 12px;
+       background: url(../img/puce.png) left center no-repeat;
+       line-height: 20px;
+}
+
+.texte ul li a{
+       color: #5E5E5E;
+       text-decoration: none;
+}
+
+
+.texte .imgD{
+       max-width: 300px;
+       float: left;
+       margin-right: 16px;
+}
+
 .droit{
-       width:218px;
        height:71px;
        background-color:#fdfdfd;
        margin-top:20px;
        border-radius: 2px 2px 2px 2px;  
        border: 1px solid #DDDDDD;
+       display: table;
+    width: 100%;
 }
 
 .side{
@@ -630,7 +651,7 @@ bloc-left li, bloc-right li{
        text-align:justify;
 }
 
-.side_last{
+.side:last-child{
        margin-left:20px;
        margin-right:20px;
        margin-top:12px;
diff --git a/project/static/img/d1.jpg b/project/static/img/d1.jpg
new file mode 100644 (file)
index 0000000..031514f
Binary files /dev/null and b/project/static/img/d1.jpg differ
diff --git a/project/static/img/d2.jpg b/project/static/img/d2.jpg
new file mode 100644 (file)
index 0000000..feeef2e
Binary files /dev/null and b/project/static/img/d2.jpg differ
diff --git a/project/static/img/d3.jpg b/project/static/img/d3.jpg
new file mode 100644 (file)
index 0000000..cef979f
Binary files /dev/null and b/project/static/img/d3.jpg differ
diff --git a/project/static/img/d4.jpg b/project/static/img/d4.jpg
new file mode 100644 (file)
index 0000000..c370a12
Binary files /dev/null and b/project/static/img/d4.jpg differ
diff --git a/project/static/img/d5.jpg b/project/static/img/d5.jpg
new file mode 100644 (file)
index 0000000..f0c012e
Binary files /dev/null and b/project/static/img/d5.jpg differ
diff --git a/project/static/img/d6.jpg b/project/static/img/d6.jpg
new file mode 100644 (file)
index 0000000..8e2424a
Binary files /dev/null and b/project/static/img/d6.jpg differ
diff --git a/project/static/img/ex.png b/project/static/img/ex.png
deleted file mode 100644 (file)
index c04b324..0000000
Binary files a/project/static/img/ex.png and /dev/null differ
diff --git a/project/static/img/logo.jpg b/project/static/img/logo.jpg
new file mode 100644 (file)
index 0000000..2dc427e
Binary files /dev/null and b/project/static/img/logo.jpg differ
diff --git a/project/static/img/montreal.png b/project/static/img/montreal.png
deleted file mode 100644 (file)
index 4043fd5..0000000
Binary files a/project/static/img/montreal.png and /dev/null differ
diff --git a/project/static/img/puce.png b/project/static/img/puce.png
new file mode 100644 (file)
index 0000000..4fc82a5
Binary files /dev/null and b/project/static/img/puce.png differ
diff --git a/project/static/js/unslider.min.js b/project/static/js/unslider.min.js
new file mode 100644 (file)
index 0000000..4298701
--- /dev/null
@@ -0,0 +1 @@
+(function(e,t){if(!e)return t;var n=function(){this.el=t;this.items=t;this.sizes=[];this.max=[0,0];this.current=0;this.interval=t;this.opts={speed:500,delay:3e3,complete:t,keys:!t,dots:t,fluid:t};var n=this;this.init=function(t,n){this.el=t;this.ul=t.children("ul");this.max=[t.outerWidth(),t.outerHeight()];this.items=this.ul.children("li").each(this.calculate);this.opts=e.extend(this.opts,n);this.setup();return this};this.calculate=function(t){var r=e(this),i=r.outerWidth(),s=r.outerHeight();n.sizes[t]=[i,s];if(i>n.max[0])n.max[0]=i;if(s>n.max[1])n.max[1]=s};this.setup=function(){this.el.css({overflow:"hidden",width:n.max[0],height:this.items.first().outerHeight()});this.ul.css({width:this.items.length*100+"%",position:"relative"});this.items.css("width",100/this.items.length+"%");if(this.opts.delay!==t){this.start();this.el.hover(this.stop,this.start)}this.opts.keys&&e(document).keydown(this.keys);this.opts.dots&&this.dots();if(this.opts.fluid){var r=function(){n.el.css("width",Math.min(Math.round(n.el.outerWidth()/n.el.parent().outerWidth()*100),100)+"%")};r();e(window).resize(r)}if(this.opts.arrows){this.el.parent().append('<p class="arrows"><span class="prev">←</span><span class="next">→</span></p>').find(".arrows span").click(function(){e.isFunction(n[this.className])&&n[this.className]()})}if(e.event.swipe){this.el.on("swipeleft",n.prev).on("swiperight",n.next)}};this.move=function(t,r){if(!this.items.eq(t).length)t=0;if(t<0)t=this.items.length-1;var i=this.items.eq(t);var s={height:i.outerHeight()};var o=r?5:this.opts.speed;if(!this.ul.is(":animated")){n.el.find(".dot:eq("+t+")").addClass("active").siblings().removeClass("active");this.el.animate(s,o)&&this.ul.animate(e.extend({left:"-"+t+"00%"},s),o,function(i){n.current=t;e.isFunction(n.opts.complete)&&!r&&n.opts.complete(n.el)})}};this.start=function(){n.interval=setInterval(function(){n.move(n.current+1)},n.opts.delay)};this.stop=function(){n.interval=clearInterval(n.interval);return n};this.keys=function(t){var r=t.which;var i={37:n.prev,39:n.next,27:n.stop};if(e.isFunction(i[r])){i[r]()}};this.next=function(){return n.stop().move(n.current+1)};this.prev=function(){return n.stop().move(n.current-1)};this.dots=function(){var t='<ol class="dots">';e.each(this.items,function(e){t+='<li class="dot'+(e<1?" active":"")+'">'+(e+1)+"</li>"});t+="</ol>";this.el.addClass("has-dots").append(t).find(".dot").click(function(){n.move(e(this).index())})}};e.fn.unslider=function(t){var r=this.length;return this.each(function(i){var s=e(this);var u=(new n).init(s,t);s.data("unslider"+(r>1?"-"+(i+1):""),u)})}})(window.jQuery,false)
\ No newline at end of file
index 95d9c9c..8e5fc4c 100644 (file)
 
 {% block Contenu %}
        
-        <!-- PARTIE TEXTE -->
-        <div class="row intro">
-        
-                <div class="large-3 columns">
-                    <div class="partenaire">
-                        <a href="http://www.auf.org" target="_blank"><img src="{{ STATIC_URL }}img/logoauf.jpg"></a>
-                        <div class="separ2"></div>
-                        <a href="http://www.u-cergy.fr/fr/index.html" target="_blank"><img src="{{ STATIC_URL }}img/cergy.jpg"></a>
+        <!-- ZONE D'OUTILS -->
+            <bandeau>
+                <!-- slideshow -->
+                <section id="slideshow">  
+                                       
+                    <div class="banner">
+                        <ul>
+                               {% if slider_list %}
+                               {% for item in slider_list %}
+                                       <li>
+                                       <figure>
+                                               {% if item.lien %}<a href="{{ item.lien }}">{% endif %}<img src="{{ MEDIA_URL }}{{ item.image }}" alt=""/ height="219" width="360">{% if item.lien %}</a>{% endif %}
+                                            <figcaption><h5>{{ item.titre }}</h5><p>{{ item.description|striptags|safe|truncatewords_html:16 }}</p></figcaption>
+                                         </figure>
+                                     </li>
+                                 {% endfor %}
+                             {% endif %}
+                        </ul>
                     </div>
-                 </div>
-                 <div class="large-9 columns">
-                    <div class="texteintro">
-                            {% block Texte %}
-                                   {% placeholder Texte%}
-                            {% endblock %}
-                  </div>
-                </div>
-                
-            </div>
-        
-        <div class="row"><div class="large-12 columns"><div class="separ"></div></div></div>
-        
-        <!--PARTIE CARRE-->
-        <div class="row"> 
-        
-                       <div class="large-12 columns">
             
-            <h1>Qui sommes nous?</h1>
-               
-            <div class="row">
-                <div class="large-6 columns">
-                     <div class="somme">
-                        <div class="somme-image"><a href="{% page_url "seminaire" %}"><img src="{{ STATIC_URL }}img/image1.jpg"></a></div>
-                        <h2><a href="{% page_url "seminaire" %}">{% page_attribute "page_title" "seminaire" %}</a></h2>
-                        <p>Integer ornare libero nisi. Duis ac magna urna. Nulla facilisi. Phasellus at ante magna. Quisque nec porta nulla. </p>
-                    </div>
-                </div>
-                <div class="large-6 columns">
-                    <div class="somme">
-                        <div class="somme-image"><a href="{% page_url "allocations" %}"><img src="{{ STATIC_URL }}img/image2.jpg"></a></div>
-                        <h2><a href="{% page_url "allocations" %}">{% page_attribute "page_title" "allocations" %}</a></h2>
-                        <p>Integer ornare libero nisi. Duis ac magna urna. Nulla facilisi. Phasellus at ante magna. Quisque nec porta nulla. </p>
+                </section>  
+                
+                <!-- mot du directeur -->
+                 <article>
+                   <h4>Mot du Directeur :</h4>
+                   {% if mot_list %}
+                       <p>{{ mot_list.0.texte|striptags|safe|truncatewords_html:70 }}</p>
+                   {% else %}
+                        <p>Pas de mot du directeur</p>
+                   {% endif %}
+                </article> 
+                
+                <!-- recherche et reseaux -->
+                <div class="outil">
+                    <div class="forml">
+                        <form id="searchform" name="searchform" action="/recherche/" method="get">
+                          <div class="fieldcontainer">
+                            <input type="text" name="q" id="id_q" class="searchfield" placeholder="Rechercher ..." tabindex="1">
+                            <input type="submit" name="searchbtn" id="searchbtn" value="">    
+                        </form>
+                        </div>
                     </div>
-                </div>
-            </div>
-        
-            <div class="row"> 
-                <div class="large-6 columns">
-                   <div class="somme">
-                        <div class="somme-image"><a href="{% page_url "conferences" %}"><img src="{{ STATIC_URL }}img/image3.jpg"></a></div>
-                        <h2><a href="{% page_url "conferences" %}">{% page_attribute "page_title" "conferences" %}</a></h2>
-                        <p>Integer ornare libero nisi. Duis ac magna urna. Nulla facilisi. Phasellus at ante magna. Quisque nec porta nulla. </p>
+                    <div class="reseau">
+                        <h4> Suivez-nous : </h4>
+                        {% if media_list %}
+                        <ul class="icone">
+                            <a href="{{ media_list.0.lien_twitter }}"><li class="icone-1"></li></a>
+                            <a href="{{ media_list.0.lien_facebook }}"><li class="icone-2"></li></a>
+                            <a href="{{ media_list.0.lien_rss }}"><li class="icone-3"></li></a>
+                            <a href="{{ media_list.0.lien_youtube }}"><li class="icone-4"></li></a>
+                        </ul>
+                        <ul class="rs">
+                            <li class="rs-1"><a href="{{ media_list.0.lien_twitter }}">sur Twitter</a></li>
+                            <li class="rs-2"><a href="{{ media_list.0.lien_facebook }}">sur Facebook</a></li>
+                            <li class="rs-3"><a href="{{ media_list.0.lien_rss }}">sur Flux Rss</a></li>
+                            <li class="rs-4"><a href="{{ media_list.0.lien_youtube }}">sur Youtube</a></li>
+                        </ul>
+                        {% else %}
+                               <p>Pas de médias sociaux</p>
+                        {% endif %}
                     </div>
                 </div>
-                <div class="large-6 columns">
-                    <div class="somme">
-                        <div class="somme-image"><a href="{% page_url "numerique" %}"><img src="{{ STATIC_URL }}img/image4.jpg"></a></div>
-                        <h2><a href="{% page_url "numerique" %}">{% page_attribute "page_title" "numerique" %}</a></h2>
-                        <p>Integer ornare libero nisi. Duis ac magna urna. Nulla facilisi. Phasellus at ante magna. Quisque nec porta nulla. </p>
+                
+                <!-- Bandeau -->
+                {% if bandeau_list %}
+                    <div id="marquee"> 
+                    <marquee scrolldelay="200"> <p><a href="{{ bandeau_list.lien }}">{{ bandeau_list.0.texte }}</a></p> </marquee>
                     </div>
-                </div>
-             </div>
-             
-             </div>
-        
-        </div>
-        
-        <!--CENTRE-->
-        <div class="row"> 
-        
-               <div class="large-6 columns">
-               <div class="separ"></div>
-                <h1>Services</h1>
-                 <div class="somme">
-                    <div class="somme-image"><a href="{% page_url "service" %}"><img src="{{ STATIC_URL }}img/image5.jpg"></a></div>
-                    <h2><a href="{% page_url "service" %}">Mise à dispostion de salle et de bureaux</a></h2>
-                    <p>Integer ornare libero nisi. Duis ac magna urna. Nulla facilisi. Phasellus at ante magna. Quisque nec porta nulla. </p>
-                </div>
-            </div>
-                       <div class="large-6 columns">
-               <div class="separ"></div>
-                <h1>Actualité</h1>
-               <div class="actu">
-            {% if actu_list2%}
+                {% endif %}
+                
+            </bandeau>
+            
+            
+            <!-- ZONE CONTENU -->
+                <div class="contenu">
+                
+                <!-- PARTIE GAUCHE -->
                 
-                    {% with actu_list2 as item_list %}
-                                    {% for item in item_list %}
-                                        <div class="news">
-                                            <div class="photo">
-                                                <a href="{{ item.get_absolute_url }}">
-                                                      {% if item.image %}
-                                                      <img src="{{ MEDIA_URL }}{{ item.image }}" width="68" height="50" alt="{{ item.titre }}" title="{{ item.titre }}"/>
+                    <div class="gauche">
+                        <!-- Bloc gauche1 -->
+                        <div class="bloc_left">
+                        
+                                     <h2><a href="/flux/appels-offre/">Appels en cours  <img src="{{ STATIC_URL }}/img/rss.gif" alt="" class="flux"/></a></h2>
+                                     
+                                    {% if appel_list2%}
+                                        {% with appel_list2 as item_list %}
+                                            {% for item in item_list %}
+                                                 <div class="side">
+                                                 <span class="txt"><span><a href="{{ item.get_absolute_url }}">Date limite : {{ item.date_fin|date:"d M Y" }}</a></span> <br />
+                                                 <h3><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h3>
+                                                 {{ item.texte|striptags|safe|truncatewords_html:30 }}</span>
+                                                 </div>                                
+                                             {% endfor %}
+                                        {% endwith %}
+                                    {% else%}
+                                          <p>Pas d'appel d'offre</p>                
+                                    {% endif %}
+                    
+                        </div>
+                
+                        <!-- Bloc gauche2 -->
+                        <div class="bloc_left">         
+                                 
+                                 <h2><a href="/flux/actualite/">Actualités <img src="{{ STATIC_URL }}/img/rss.gif" alt="" class="flux"/></a></h2>
+                                 
+                                 {% if actu_list2%}
+                                        {% with actu_list2 as item_list %}
+                                            {% for item in item_list %}
+                                                 <div class="side">
+                                                        {% if item.image %}
+                                                      <img src="{{ MEDIA_URL }}{{ item.image }}" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
                                                       {% else %}
-                                                      <img src="{{ STATIC_URL }}img/log.jpg" width="68" height="50" alt="Actualité AFS" title="Actualité AFS"/>
+                                                      <img src="{{ STATIC_URL }}img/logo.jpg" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
                                                       {% endif %}
-                                                </a>
-                                            </div>
-                                            <div class="desc">
-                                                <p class="date"><a href="{{ item.get_absolute_url }}">Le {{ item.date_pub|date:"d M Y" }}</a></p>
-                                                <h4><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h4>
-                                            </div>
-                                        </div>  
-                                   {% endfor %}
-                     {% endwith %}
-                 
-                {% else%}
-                      <p>Pas d'actu</p>                
-                {% endif %}
-                    <p class="centre"><a href="{% page_url "actualites" %}">Voir toutes les actualités</a></div>
+                                                 <span class="txt"><span><a href="{{ item.get_absolute_url }}">{{ item.date_pub|date:"d M Y" }}</a></span> <br />
+                                                 <h3><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h3>
+                                                 {{ item.texte|striptags|safe|truncatewords_html:24 }}</span>
+                                                 </div>                                
+                                             {% endfor %}
+                                        {% endwith %}
+                                    {% else%}
+                                          <p>Pas d'actu</p>                
+                                    {% endif %}
+                                
+                            </div>
+                       </div>
+         
+             <!-- PARTIE GAUCHE -->   
+             <aside>
+                <div class="bloc_right">
+                   <h2>Missions de l'IFIC</h2>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d1.jpg" class="droite"/><a href="{% page_url "missions" %}">Service conseil et expertise</a></div>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d2.jpg" class="droite"/><a href="{% page_url "missions" %}">Formation et Sensibilisation</a></div>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d3.jpg" class="droite"/><a href="{% page_url "missions" %}">Recherche et Veille</a></div>
+                 </div>
+        
+                <div class="bloc_right">
+                   <h2>Ressources</h2>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d4.jpg" class="droite"/><a href="{% page_url "ressources" %}">Écrits</a></div>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d5.jpg" class="droite"/><a href="{% page_url "ressources" %}">Images et Vidéos</a></div>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d6.jpg" class="droite"/><a href="{% page_url "ressources" %}">Pédagogie TICE</a></div>
+                 </div>
+          
+                <div class="bloc_right">
+                     <h2>Nuage de mots clefs</h2> 
+                    <div id="tagsphere">
+                        <ul class="kk">
+                            <li><a href="#">utilité</a></li>
+                            <li><a href="#">ergonomie</a></li>
+                            <li><a href="#">homogène</a></li>
+                            <li><a href="#">Book</a></li>
+                            <li><a href="#">Flip-book</a></li>
+                            <li><a href="#">Moodle</a></li>
+                            <li><a href="#">intuition</a></li>
+                            <li><a href="#">Muve</a></li>
+                            <li><a href="#">LCMS</a></li>
+                            <li><a href="#">FOAD</a></li>
+                            <li><a href="#">Libérez-un-livre</a></li>
+                            <li><a href="#">efficacité</a></li>
+                            <li><a href="#">efficience</a></li>
+                            <li><a href="#">design</a></li>
+                            <li><a href="#">interface utilisateur</a></li>
+                            <li><a href="#">Courbe d'apprentissage</a></li>
+                            <li><a href="#">MMOG</a></li>
+                            <li><a href="#">Livre-voyageur</a></li>
+                            <li><a href="#">convivialité</a></li>
+                        </ul>
+                    </div>
                 </div>
-            </div>
+                
+             </aside>
         
         </div>
-        
-    </div>
     
 {% endblock Contenu %}
\ No newline at end of file
diff --git a/project/templates/actualite.html b/project/templates/actualite.html
deleted file mode 100644 (file)
index 5a06007..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-{% load cms_tags%}
-<h1>Actualité</h1>
-       
-    <div class="actu">
-       {% if actu_list%}
-       
-            {% with actu_list as item_list %}
-                            {% for item in item_list %}
-                               <div class="news">
-                                       <div class="photo">
-                                        <a href="{{ item.get_absolute_url }}">
-                                              {% if item.image %}
-                                              <img src="{{ MEDIA_URL }}{{ item.image }}" width="68" height="50" alt="{{ item.titre }}" title="{{ item.titre }}"/>
-                                              {% else %}
-                                              <img src="{{ STATIC_URL }}img/log.jpg" width="68" height="50" alt="Actualité AFS" title="Actualité AFS"/>
-                                              {% endif %}
-                                        </a>
-                                    </div>
-                                    <div class="desc">
-                                        <p class="date"><a href="{{ item.get_absolute_url }}">Le {{ item.date_pub|date:"d M Y" }}</a></p>
-                                        <h4><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h4>
-                                                       </div>
-                                </div>  
-                           {% endfor %}
-             {% endwith %}
-         
-       {% else%}
-              <p>Pas d'actu</p>                
-       {% endif %}
-               <p class="centre"><a href="{% page_url "actualites" %}">Voir toutes les actualités</a></div>
-        </div>
\ No newline at end of file
index 8002366..797798d 100644 (file)
@@ -4,35 +4,35 @@
 {% block Contenu %}
 
 <!-- PARTIE TEXTE -->
-        <div class="row intro">
+<div class="contenu">
         
-               <div class="large-8 columns">
-            
-               {% with actualite as item %}
+        <!-- PARTIE GAUCHE -->
+               <div class="gauche">
+               
+                {% with actualite as item %}
+                <!-- Fil ariane -->
+                <div id="filariane">  
+                    <li><a href="/">Accueil</a> &raquo; </li><li> <a href="{% page_url "actualite" %}">Actualités</a> &raquo; </li><li>{{ item.titre }}</li>
+               </div> 
 
-                    <h1 style="margin-bottom:4px;">{{ item.titre }}</h1>
-                    
-                        <div class="date">Publié le {{ item.date_pub|date:"d M Y" }}</div>
+                                       <h1>{{ item.titre }}</h1>
+                    <div class="date">Publié le {{ item.date_pub|date:"d M Y" }}</div>
+                       
+                    <div class="texte">
+                    {% if item.image %}
+                       <img src="{{ MEDIA_URL }}{{ item.image }}" class="imgD"/>
+                    {% endif %}
                     
-                        {% if item.image %}
-                            <img src="{{ MEDIA_URL }}{{ item.image }}" class="gauche"/>
-                       {% endif %}        
-                               <p>{{ item.texte|safe}}</p>         
+                       <p>{{ item.texte|safe}}</p>
+                    </div>
                             
                 {% endwith %}
                   
             </div>
             
-            <div class="large-4 columns">
-            
-                {% block BlocActualites %}
-                        {% include "actualite.html" %}
-                {% endblock BlocActualites %}
-                
-            </div>
-                
-        </div>
+                 {% include "side.html" %}
+                 
+      </div>
 
-  
         
 {% endblock %}
\ No newline at end of file
diff --git a/project/templates/appel_detail.html b/project/templates/appel_detail.html
new file mode 100644 (file)
index 0000000..69a1286
--- /dev/null
@@ -0,0 +1,39 @@
+{% extends "base.html" %}
+{% load i18n cms_tags %}
+
+{% block Contenu %}
+
+<!-- PARTIE TEXTE -->
+<div class="contenu">
+        
+        <!-- PARTIE GAUCHE -->
+               <div class="gauche">
+            
+               {% with appel as item %}
+            
+                <!-- Fil ariane -->
+                <div id="filariane">  
+                    <li><a href="/">Accueil</a> &raquo; </li><li> <a href="{% page_url "appels" %}">Appels d'offres</a> &raquo; </li><li>{{ item.titre }}</li>
+               </div> 
+
+                                       <h1>{{ item.titre }}</h1>
+                    <div class="date">Publié le {{ item.date_pub|date:"d M Y" }}</div>
+                       
+                    <div class="texte">
+                    {% if item.image %}
+                       <img src="{{ MEDIA_URL }}{{ item.image }}" class="imgD"/>
+                    {% endif %}
+                    
+                       <p>{{ item.texte|safe}}</p>
+                    </div>
+                            
+                {% endwith %}
+                  
+            </div>
+            
+                 {% include "side.html" %}
+                 
+      </div>
+
+        
+{% endblock %}
\ No newline at end of file
index 4aa403f..5e4c9ba 100644 (file)
@@ -10,8 +10,9 @@
 
   <link rel="stylesheet" href="{{ STATIC_URL }}css/style2.css">
   {% render_block "css" %} 
-  <script type="text/javascript" src="{{ STATIC_URL }}/js/jquery.min.js"></script>
+               <script type="text/javascript"src="//code.jquery.com/jquery-latest.min.js"></script>
                <script type="text/javascript" src="{{ STATIC_URL }}/js/jquery.tagSphere.js"></script>
+        <script type="text/javascript" src="{{ STATIC_URL }}/js/unslider.min.js"></script>
                <script type="text/javascript">
                        $(document).ready(function(){
                                $('#tagsphere').tagSphere({
@@ -21,6 +22,9 @@
                                        radius: 120,
                                        timer: 50
                                });
+                               $(function() {
+                                       $('.banner').unslider();
+                               });
                        });
                </script>
   {% render_block "js" %}
                <!-- NAVIGATION -->
                <nav>
                     <ul>
-                        <li  class="rub1"><a href="#"><img src="{{ STATIC_URL }}/img/home.png" alt=""></a></li>
-                        <li class="rub2"><a href="IFIC_page.html">L'IFIC</a></li>
-                        <li class="rub3"><a href="#">Appels d'offre</a></li>
-                        <li class="rub4"><a href="#">Actualités</a></li>
-                        <li class="rub5"><a href="#">Ressources</a></li>
+                        <li  class="rub1"><a href="/"><img src="{{ STATIC_URL }}/img/home.png" alt=""></a></li>
+                        <li class="rub2"><a href="{% page_url "ific" %}">L'IFIC</a></li>
+                        <li class="rub3"><a href="{% page_url "appels" %}">Appels d'offre</a></li>
+                        <li class="rub4"><a href="{% page_url "actualite" %}">Actualités</a></li>
+                        <li class="rub5"><a href="{% page_url "ressources" %}">Ressources</a></li>
                         <li class="rub6"><a href="#">Annuaire</a></li>
-                        <li class="rub7"><a href="#">Agenda</a></li>
-                        <li class="rub8"><a href="#">L'AUF</a></li>
+                        <li class="rub7"><a href="{% page_url "agenda" %}">Agenda</a></li>
+                        <li class="rub8"><a href="{% page_url "auf" %}">L'AUF</a></li>
                     </ul>
                 </nav> 
             
-            <!-- ZONE D'OUTILS -->
-            <bandeau>
-                <!-- slideshow -->
-                <section id="slideshow">  
-                    
-                    <div class="container">  
-                        <div class="slider">  
-                            <figure>  
-                                <img src="{{ STATIC_URL }}/img/motdudirecteur.gif" alt=""/>  
-                                <figcaption><h5>Savoir en partage</h5><p> Aider les établissements d’enseignement supérieur à faire face aux nouveaux défis de l’éducation en les accompagnant...</p></figcaption>
-                            </figure><!-- 
-                            --><figure>  
-                                <img src="{{ STATIC_URL }}/img/motdudirecteur.gif" alt="" />  
-                                <figcaption><h5>Savoir en partage 2</h5><p> Aider les établisshjkhjkhjkhjkux nouveaux défis de l’éducation en les accompagnant...</p></figcaption>
-                            </figure><!-- 
-                            --><figure>  
-                                <img src="{{ STATIC_URL }}/img/motdudirecteur.gif" alt=""  />  
-                                <figcaption><h5>Savoir en partage 3</h5><p> Aider les établissements dfghfhgfghuveaux défis de l’éducation en les accompagnant...</p></figcaption>
-                            </figure><!-- 
-                            --><figure>  
-                                <img src="{{ STATIC_URL }}/img/motdudirecteur.gif" alt="" />  
-                                <figcaption><h5>Savoir en partage 4</h5><p> Aider les établissements d’enseignement supérieur à faire face ahjkx défis de l’éducation en les accompagnant...</p></figcaption>
-                            </figure>  
-                        </div>  
-                    </div>  
-                    
-                  <span id="timeline"></span>   
-            
-                </section>  
-                
-                <!-- mot du directeur -->
-                 <article>
-                   <h4>Mot du Directeur :</h4>
-                    <p>Créé en 2012 suite à un accord entre le gouvernement tunisien et l’Agence Universitaire de la Francophonie, l’Institut de la Francophonie pour l’Ingénierie de la Connaissance et la formation à distance s’est donné pour missions de :<br /> <br />
-                aider les établissements d’enseignement supérieur à faire face aux nouveaux défis de l’éducation en les appuyant dans la définition de leur politique d’enseignement numérique</p>
-                </article> 
-                
-                <!-- recherche et reseaux -->
-                <div class="outil">
-                    <div class="forml">
-                        <form id="searchform" name="searchform" method="get" action="index.html">
-                          <div class="fieldcontainer">
-                            <input type="text" name="s" id="s" class="searchfield" placeholder="Rechercher ..." tabindex="1">
-                            <input type="submit" name="searchbtn" id="searchbtn" value="">    
-                        </form>
-                        </div>
-                    </div>
-                    <div class="reseau">
-                        <h4> Suivez-nous : </h4>
-                        <ul class="icone">
-                            <li class="icone-1"></li>
-                            <li class="icone-2"></li>
-                            <li class="icone-3"></li>
-                            <li class="icone-4"></li>
-                        </ul>
-                        <ul class="rs">
-                            <li class="rs-1">sur Twitter</li>
-                            <li class="rs-2">sur Facebook</li>
-                            <li class="rs-3">sur Flux Rss</li>
-                            <li class="rs-4">sur Youtube</li>
-                        </ul>
-                    </div>
-                </div>
-                
-                <!-- Bandeau -->
-                <div id="marquee"> 
-                <marquee scrolldelay="200"> <p>Bourse de perfectionnement à la formation et à la recherche  ***  <a href="#">...Bourse de perfectionnement à la formation et à la recherche</a>  *** ...Bourse de perfectionnemt</p> </marquee>
-                </div>
-                
-            </bandeau>
-            
+            <!-- ALLEZ LE CONTENEU LA -->
+            {% block Contenu %}
+               {% endblock Contenu %}    
             
-            <!-- ZONE CONTENU -->
-                <div class="contenu">
-                
-                <!-- PARTIE GAUCHE -->
-                
-                    <div class="gauche">
-                        <!-- Bloc gauche1 -->
-                        <div class="bloc_left">
-                        
-                                     <h2><a href="#">Appels en cours  <img src="{{ STATIC_URL }}/img/rss.gif" alt="" class="flux"/></a></h2>
-                                     
-                                     <div class="side">
-                                     <span class="txt"><span><a href="#">23 Mars 2012</a></span> <br />
-                                     <h3><a href="#">Appels à candidatures 2012/2013 - Bourses du SCAC</a></h3>
-                                      Bourse de perfectionnement à la formation et à la recherche (PF) 2012-2013 </span>
-                                     </div>
-                                     
-                                     <div class="side">
-                                   <span class="txt"><span><a href="#">23 Mars 2012</a></span> <br />
-                                     <h3><a href="#">Prix Louis D’Hainaut 2014 de la meilleure thèse en technologie éducative</a></h3>
-                                    L’université de Mons (Belgique) et l’Agence universitaire de la Francophonie (AUF) , à travers son Institut de la Francophonie pour l’ingénierie de la connaissance et la formation à distance (IFIC), s’associent pour décerner le Prix Louis D’Hainaut de la meilleure thèse de doctorat en technologie éducative... </span>
-                                     </div>
-                                     
-                                     <div class="side">
-                                     <span class="txt"><span><a href="#">23 Mars 2012</a></span> <br /> 
-                                      <h3><a href="#">Prix Louis D’Hainaut 2014 de la meilleure thèse en technologie éducative</a></h3>
-                                     L’université de Mons (Belgique) et l’Agence universitaire de la Francophonie (AUF) , à travers son Institut de la Francophonie pour l’ingénierie de la connaissance et la formation à distance (IFIC), s’associent pour décerner le Prix Louis D’Hainaut de la meilleure thèse de doctorat en technologie éducative... </span>
-                                     </div>
-                                     
-                                     <div class="side_last">
-                                     <span class="txt"><span><a href="#">23 Mars 2012</a></span> <br />
-                                        <h3><a href="#">Appels à candidatures 2012/2013 - Bourses du SCAC</a></h3>
-                                      Bourse de perfectionnement à la formation et à la recherche (PF) 2012-2013 </span>
-                                     </div>
-                    
-                        </div>
-                
-                        <!-- Bloc gauche2 -->
-                        <div class="bloc_left">         
-                         <ul >
-                                 
-                                 <h2><a href="#">Actualités <img src="{{ STATIC_URL }}/img/rss.gif" alt="" class="flux"/></a></h2>
-                                 
-                                 <div class="side">
-                                        <img src="{{ STATIC_URL }}/img/ex.png" class="flott">
-                                 <span class="txt"><span><a href="#">23 Mars 2012</a></span> <br /> 
-                                   <h3><a href="#">Appels à candidatures 2012/2013 - Bourses du SCAC</a></h3>
-                                 Lancement de l’édition 2012 du Prix des cinq continents de la Francophonie </span>
-                                 </div>
-                                 <div class="side">
-                                       <img src="{{ STATIC_URL }}/img/franco.png" class="flott">
-                              <span class="txt"><span><a href="#">11 Avril 2013</a></span> <br /> 
-                                 <h3><a href="#">Prix Louis D’Hainaut 2014 de la meilleure thèse en technologie éducative</a></h3>
-                                 L’université de Mons (Belgique) et l’Agence universitaire de la Francophonie (AUF), à travers son Institut de la Francophonie pour l’ingénierie de la connaissance et la formation à distance (IFIC)... </span>
-                                 </div>
-                                 <div class="side">
-                                        <img src="{{ STATIC_URL }}/img/alexancien.png" class="flott">
-                                 <span class="txt"><span><a href="#">06 Avril 2013</a></span> <br /> 
-                                 <h3><a href="#">Prix Louis D'Hainaut 2014 de la meilleure thèse en technologie éducative</a></h3>
-                                 L’université de Mons (Belgique) et l’Agence universitaire de la Francophonie (AUF), à travers son Institut de la Francophonie pour l’ingénierie de la connaissance et la formation à distance (IFIC)... </span>
-                                 </div>
-                                 <div class="side_last">
-                                        <img src="{{ STATIC_URL }}/img/montreal.png" class="flott">
-                                 <span class="txt"><span>19 Février 2013</span> <br />
-                                   <h3>Appels à candidatures 2012/2013 - Bourses du SCAC </h3> 
-                                 Lancement de l’édition 2012 du Prix des cinq continents de la Francophonie </span>
-                                 </div>
-                                
-                                 </ul>   
-                            </div>
-                       </div>
-         
-             <!-- PARTIE GAUCHE -->   
-             <aside>
-                <div class="bloc_right">
-                   <h2>Missions de l'IFIC</h2>
-                   <div class="droit">   <img src="{{ STATIC_URL }}/img/1.png" class="droite"/> <span class="text"><a href="#">Service </a></span> </div>
-                   <div class="droit">   <img src="{{ STATIC_URL }}/img/1.png" class="droite"/> <span class="text"><a href="#">Service </a></span> </div>
-                   <div class="droit">   <img src="{{ STATIC_URL }}/img/1.png" class="droite"/> <span class="text"><a href="#">Service </a></span> </div>
-                 </div>
-        
-                <div class="bloc_right">
-                   <h2>Missions de l'IFIC</h2>
-                   <div class="droit">   <img src="{{ STATIC_URL }}/img/1.png" class="droite"/> <span class="text"><a href="#">Service </a></span> </div>
-                   <div class="droit">   <img src="{{ STATIC_URL }}/img/1.png" class="droite"/> <span class="text"><a href="#">Service </a></span> </div>
-                   <div class="droit">   <img src="{{ STATIC_URL }}/img/1.png" class="droite"/> <span class="text"><a href="#">Service </a></span> </div>
-                 </div>
-          
-                <div class="bloc_right">
-                     <h2>Missions de l'IFIC</h2> 
-                    <div id="tagsphere">
-                        <ul class="kk">
-                            <li><a href="#">utilité</a></li>
-                            <li><a href="#">ergonomie</a></li>
-                            <li><a href="#">homogène</a></li>
-                            <li><a href="#">Book</a></li>
-                            <li><a href="#">Flip-book</a></li>
-                            <li><a href="#">Moodle</a></li>
-                            <li><a href="#">intuition</a></li>
-                            <li><a href="#">Muve</a></li>
-                            <li><a href="#">LCMS</a></li>
-                            <li><a href="#">FOAD</a></li>
-                            <li><a href="#">Libérez-un-livre</a></li>
-                            <li><a href="#">efficacité</a></li>
-                            <li><a href="#">efficience</a></li>
-                            <li><a href="#">design</a></li>
-                            <li><a href="#">interface utilisateur</a></li>
-                            <li><a href="#">Courbe d'apprentissage</a></li>
-                            <li><a href="#">MMOG</a></li>
-                            <li><a href="#">Livre-voyageur</a></li>
-                            <li><a href="#">convivialité</a></li>
-                        </ul>
-                    </div>
-                </div>
-                
-             </aside>
-        
-        </div>
         
         <footer>
                <div class="foot">
             </ul>
         </div> 
         
-        <div class="col1"><span><a href="#">Contacts</a></span> | <span><a href="#">Plan du site</a></span> | <span><a href="#">Archives</a></span> | <span><a href="#">Politique Editoriale</a></span> | <span><a href="#">Espace privé</a></span></div> 
+        <div class="col1"><span><a href="{% page_url "contact" %}">Contacts</a></span> | <span><a href="{% page_url "plan" %}">Plan du site</a></span> | <span><a href="{% page_url "archives" %}">Archives</a></span> | <span><a href="{% page_url "politique" %}">Politique Editoriale</a></span> | <span><a href="#">Espace privé</a></span></div> 
         <div class="col2"> © 2013 Tous droits réservés</div> 
         </footer>
         
index ae36652..27be548 100644 (file)
@@ -1,29 +1,31 @@
 {% extends "base.html" %}
-{% load cms_tags%}
-
-{% block Contenu %}
-        
-        <!-- PARTIE TEXTE -->
-        <div class="row intro">
+{% load cms_tags menu_tags%}
         
-               <div class="large-8 columns">
-            
-               <h1>{% page_attribute "page_title" %}</h1>
+ {% block Contenu %}
 
-                    {% block Texte %}
-                            {% placeholder Texter%}
-                    {% endblock %}
-                  
-            </div>
-            
-            <div class="large-4 columns">
-            
-                {% block BlocActualites %}
-                        {% include "actualite.html" %}
-                {% endblock BlocActualites %}
-                
-            </div>
-                
-        </div>
-        
+            <!-- PARTIE TEXTE -->
+            <div class="contenu">
+                    
+                    <!-- PARTIE GAUCHE -->
+                        <div class="gauche">
+                        
+                            <!-- Fil ariane -->
+                            <div id="filariane">  
+                                {% show_breadcrumb %}
+                           </div> 
+                    
+                                        <h1>{% page_attribute "page_title" %}</h1>
+                                        
+                                        <div class="texte">
+                                        {% block Texte %}
+                                                {% placeholder Texter%}
+                                        {% endblock %}
+                                        </div>
+                                      
+                                </div>
+                        
+                             {% include "side.html" %}
+                             
+                  </div>
+                      
 {% endblock %}
\ No newline at end of file
index 1f5f17a..36e1911 100644 (file)
@@ -1,52 +1,52 @@
 {% extends "base.html" %}
-{% load cms_tags pagination_tags%}
+{% load cms_tags pagination_tags menu_tags%}
 
 {% block Contenu %}
+
+<!-- PARTIE TEXTE -->
+<div class="contenu">
         
-        <!-- PARTIE TEXTE -->
-        <div class="row intro">
-        
-               <div class="large-12 columns">
+        <!-- PARTIE GAUCHE -->
+               <div class="gauche">
             
-               <h1>{% page_attribute "page_title" %}</h1>
-
-                    {% block Texte %}
-                            {% placeholder Texter%}
-                    {% endblock %}
-                    
-                    <div class="actu">
-                    {% if actu_list3%}
-                        
-                            {% with actu_list3 as item_list %}
-                            {% autopaginate item_list 9 %}
+                <!-- Fil ariane -->
+                <div id="filariane">  
+                     {% show_breadcrumb %}
+               </div> 
+               
+                <h1 style="margin-bottom: 24px">Actualités</h1>
+                
+                <div class="texte">
+                {% block Texte %}
+                         {% placeholder Texter%}
+                {% endblock %}
+                </div>
+                
+                <div class="bloc_left">
+               {% if actu_list2%}
+                                        {% with actu_list2 as item_list %}
                                             {% for item in item_list %}
-                                                <div class="news">
-                                                    <div class="photo">
-                                                        <a href="{{ item.get_absolute_url }}">
-                                                              {% if item.image %}
-                                                              <img src="{{ MEDIA_URL }}{{ item.image }}" width="68" height="50" alt="{{ item.titre }}" title="{{ item.titre }}"/>
-                                                              {% else %}
-                                                              <img src="{{ STATIC_URL }}img/log.jpg" width="68" height="50" alt="Actualité AFS" title="Actualité AFS"/>
-                                                              {% endif %}
-                                                        </a>
-                                                    </div>
-                                                    <div class="desc">
-                                                        <p class="date"><a href="{{ item.get_absolute_url }}">Le {{ item.date_pub|date:"d M Y" }}</a></p>
-                                                        <h4><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h4>
-                                                    </div>
-                                                </div>  
-                                           {% endfor %}
-                                           <p class="centre"> {% paginate %}  </div>
-                             {% endwith %}
-                         
-                        {% else%}
-                              <p>Pas d'actu</p>                
-                        {% endif %}
-                            
-                        </div>
+                                                 <div class="side">
+                                                        {% if item.image %}
+                                                      <img src="{{ MEDIA_URL }}{{ item.image }}" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
+                                                      {% else %}
+                                                      <img src="{{ STATIC_URL }}img/logo.jpg" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
+                                                      {% endif %}
+                                                 <span class="txt"><span><a href="{{ item.get_absolute_url }}">Date limite : {{ item.date_pub|date:"d M Y" }}</a></span> <br />
+                                                 <h3><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h3>
+                                                 {{ item.texte|striptags|safe|truncatewords_html:24 }}</span>
+                                                 </div>                                
+                                             {% endfor %}
+                                        {% endwith %}
+                  {% else%}
+                                   <p>Pas d'actualité</p>                
+                 {% endif %}
+                 </div>
                   
             </div>
-                
-        </div>
+            
+                 {% include "side.html" %}
+                 
+      </div>
         
 {% endblock %}
\ No newline at end of file
diff --git a/project/templates/page_appel.html b/project/templates/page_appel.html
new file mode 100644 (file)
index 0000000..f02bebd
--- /dev/null
@@ -0,0 +1,52 @@
+{% extends "base.html" %}
+{% load cms_tags pagination_tags menu_tags%}
+
+{% block Contenu %}
+
+<!-- PARTIE TEXTE -->
+<div class="contenu">
+        
+        <!-- PARTIE GAUCHE -->
+               <div class="gauche">
+            
+                <!-- Fil ariane -->
+                <div id="filariane">  
+                     {% show_breadcrumb %}
+               </div> 
+               
+                <h1 style="margin-bottom: 24px">Appels d'offre</h1>
+                
+                <div class="texte">
+                {% block Texte %}
+                         {% placeholder Texter%}
+                {% endblock %}
+                </div>
+                
+                <div class="bloc_left">
+               {% if appel_list2%}
+                                        {% with appel_list2 as item_list %}
+                                            {% for item in item_list %}
+                                                 <div class="side">
+                                                        {% if item.image %}
+                                                      <img src="{{ MEDIA_URL }}{{ item.image }}" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
+                                                      {% else %}
+                                                      <img src="{{ STATIC_URL }}img/logo.jpg" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
+                                                      {% endif %}
+                                                 <span class="txt"><span><a href="{{ item.get_absolute_url }}">Date limite : {{ item.date_pub|date:"d M Y" }}</a></span> <br />
+                                                 <h3><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h3>
+                                                 {{ item.texte|striptags|safe|truncatewords_html:24 }}</span>
+                                                 </div>                                
+                                             {% endfor %}
+                                        {% endwith %}
+                  {% else%}
+                                   <p>Pas d'appel d'offre</p>                
+                 {% endif %}
+                 </div>
+                  
+            </div>
+            
+                 {% include "side.html" %}
+                 
+      </div>
+        
+{% endblock %}
\ No newline at end of file
diff --git a/project/templates/plan.html b/project/templates/plan.html
new file mode 100644 (file)
index 0000000..9a30485
--- /dev/null
@@ -0,0 +1,37 @@
+{% extends "base.html" %}
+{% load cms_tags menu_tags%}
+        
+ {% block Contenu %}
+
+            <!-- PARTIE TEXTE -->
+            <div class="contenu">
+                    
+                    <!-- PARTIE GAUCHE -->
+                        <div class="gauche">
+                        
+                            <!-- Fil ariane -->
+                            <div id="filariane">  
+                                {% show_breadcrumb %}
+                           </div> 
+                    
+                                        <h1>{% page_attribute "page_title" %}</h1>
+                                        <div class="date">Publié le {{ item.date_pub|date:"d M Y" }}</div>
+                                        
+                                        <div class="texte">
+                                            {% block Texte %}
+                                                    {% placeholder Texter%}
+                                            {% endblock %}
+                                            
+                                            
+                                            <ul>
+                                                {% show_menu 0 100 100 100 %}
+                                            </ul>
+                                        </div>
+                                      
+                                </div>
+                        
+                             {% include "side.html" %}
+                             
+                  </div>
+                      
+{% endblock %}
\ No newline at end of file
index f0f9ff7..799fd01 100644 (file)
@@ -1,55 +1,75 @@
 {% extends "base.html" %}
-{% load cms_tags%}
+{% load cms_tags menu_tags%}
 
-{% block Contenu %}
-        
-        <!-- PARTIE TEXTE -->
-        <div class="row intro">
-        
-               <div class="large-8 columns">
-            
-               <h1>Recherche</h1>
+ {% block Contenu %}
 
-                    <form action="/recherche/" method="get">
+            <!-- PARTIE TEXTE -->
+            <div class="contenu">
                     
-                    <p>La recherche "{{ query_string }}" a donnée les résultats suivants:</p>
+                    <!-- PARTIE GAUCHE -->
+                        <div class="gauche">
+                        
+                            <!-- Fil ariane -->
+                            <div id="filariane">  
+                               <li>
+                                <a href="/">Accueil</a>
+                                »
+                                </li>
+                                <li>Recherche</li>
+                           </div> 
                     
-                    <div class="actu">
-                    {% if found_entries %}
-                       {% for item in found_entries%}
-                               <div class="news">
-                                                    <div class="photo">
-                                                        <a href="{{ item.get_absolute_url }}">
-                                                              {% if item.image %}
-                                                              <img src="{{ MEDIA_URL }}{{ item.image }}" width="68" height="50" alt="{{ item.titre }}" title="{{ item.titre }}"/>
-                                                              {% else %}
-                                                              <img src="{{ STATIC_URL }}img/log.jpg" width="68" height="50" alt="Actualité AFS" title="Actualité AFS"/>
-                                                              {% endif %}
-                                                        </a>
-                                                    </div>
-                                                    <div class="desc">
-                                                        <p class="date"><a href="{{ item.get_absolute_url }}">Le {{ item.date_pub|date:"d M Y" }}</a></p>
-                                                        <h4><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h4>
-                                                    </div>
-                                 </div> 
-                        {% endfor %}
-                    {% else%}
-                              <p style="margin-top: 20px;">Pas de résultat</p>                
-                    {% endif %}
-                    </div>
-                    
-                                       </form>
-                  
-            </div>
-            
-            <div class="large-4 columns">
-            
-                {% block BlocActualites %}
-                        {% include "actualite.html" %}
-                {% endblock BlocActualites %}
-                
-            </div>
-                
-        </div>
-        
+                                        <h1>Recherche</h1>
+
+                                        <form action="/recherche/" method="get">
+                                        
+                                        <p>La recherche "{{ query_string }}" a donnée les résultats suivants :</p>
+                                        
+                                        <h2>Dans les actualités :</h2>
+                                        <div class="bloc_left">
+                                        {% if found_entries %}
+                                            {% for item in found_entries %}
+                                                 <div class="side">
+                                                        {% if item.image %}
+                                                      <img src="{{ MEDIA_URL }}{{ item.image }}" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
+                                                      {% else %}
+                                                      <img src="{{ STATIC_URL }}img/logo.jpg" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
+                                                      {% endif %}
+                                                 <span class="txt"><span><a href="{{ item.get_absolute_url }}">Date : {{ item.date_pub|date:"d M Y" }}</a></span> <br />
+                                                 <h3><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h3>
+                                                 {{ item.texte|striptags|safe|truncatewords_html:24 }}</span>
+                                                 </div>                                
+                                             {% endfor %}
+                                        {% else%}
+                                                  <p style="margin-top: 20px;">Pas de résultat</p> 
+                                        {% endif %}
+                                        </div>
+                                        
+                                        <h2>Dans les appels d'offres :</h2>
+                                        <div class="bloc_left">
+                                        {% if found_entries_appel %}
+                                            {% for item in found_entries_appel%}
+                                                 <div class="side">
+                                                        {% if item.image %}
+                                                      <img src="{{ MEDIA_URL }}{{ item.image }}" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
+                                                      {% else %}
+                                                      <img src="{{ STATIC_URL }}img/logo.jpg" class="flott" alt="{{ item.titre }}" title="{{ item.titre }}"/>
+                                                      {% endif %}
+                                                 <span class="txt"><span><a href="{{ item.get_absolute_url }}">Date limite : {{ item.date_fin|date:"d M Y" }}</a></span> <br />
+                                                 <h3><a href="{{ item.get_absolute_url }}">{{ item.titre }}</a></h3>
+                                                 {{ item.texte|striptags|safe|truncatewords_html:24 }}</span>
+                                                 </div>                                
+                                             {% endfor %}
+                                        {% else%}
+                                                  <p style="margin-top: 20px;">Pas de résultat</p>
+                                        {% endif %}
+                                        </div>
+                                        
+                                        </form>
+                                      
+                                </div>
+                        
+                             {% include "side.html" %}
+                             
+                  </div>
+                      
 {% endblock %}
\ No newline at end of file
diff --git a/project/templates/side.html b/project/templates/side.html
new file mode 100644 (file)
index 0000000..5c9b7e7
--- /dev/null
@@ -0,0 +1,77 @@
+{% load cms_tags menu_tags%}
+<!-- PARTIE DROITE -->   
+     <aside>
+       
+         <!-- recherche et reseaux -->
+        <div class="outil">
+            <div class="forml">
+                <form id="searchform" name="searchform" action="/recherche/" method="get">
+                          <div class="fieldcontainer">
+                            <input type="text" name="q" id="id_q" class="searchfield" placeholder="Rechercher ..." tabindex="1">
+                            <input type="submit" name="searchbtn" id="searchbtn" value="">    
+                        </form>
+                </div>
+            </div>
+             <div class="reseau">
+                        <h4> Suivez-nous : </h4>
+                        {% if media_list %}
+                        <ul class="icone">
+                            <a href="{{ media_list.0.lien_twitter }}"><li class="icone-1"></li></a>
+                            <a href="{{ media_list.0.lien_facebook }}"><li class="icone-2"></li></a>
+                            <a href="{{ media_list.0.lien_rss }}"><li class="icone-3"></li></a>
+                            <a href="{{ media_list.0.lien_youtube }}"><li class="icone-4"></li></a>
+                        </ul>
+                        <ul class="rs">
+                            <li class="rs-1"><a href="{{ media_list.0.lien_twitter }}">sur Twitter</a></li>
+                            <li class="rs-2"><a href="{{ media_list.0.lien_facebook }}">sur Facebook</a></li>
+                            <li class="rs-3"><a href="{{ media_list.0.lien_rss }}">sur Flux Rss</a></li>
+                            <li class="rs-4"><a href="{{ media_list.0.lien_youtube }}">sur Youtube</a></li>
+                        </ul>
+                        {% else %}
+                               <p>Pas de médias sociaux</p>
+                        {% endif %}
+                    </div>
+        </div>
+     
+        <div class="bloc_right">
+                   <h2>Missions de l'IFIC</h2>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d1.jpg" class="droite"/><a href="{% page_url "missions" %}">Service conseil et expertise</a></div>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d2.jpg" class="droite"/><a href="{% page_url "missions" %}">Formation et Sensibilisation</a></div>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d3.jpg" class="droite"/><a href="{% page_url "missions" %}">Recherche et Veille</a></div>
+                 </div>
+        
+                <div class="bloc_right">
+                   <h2>Ressources</h2>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d4.jpg" class="droite"/><a href="{% page_url "ressources" %}">Écrits</a></div>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d5.jpg" class="droite"/><a href="{% page_url "ressources" %}">Images et Vidéos</a></div>
+                   <div class="droit"><img src="{{ STATIC_URL }}/img/d6.jpg" class="droite"/><a href="{% page_url "ressources" %}">Pédagogie TICE</a></div>
+                 </div>
+  
+        <div class="bloc_right">
+             <h2>Nuage de mots clefs</h2> 
+            <div id="tagsphere">
+                <ul class="kk">
+                    <li><a href="#">utilité</a></li>
+                    <li><a href="#">ergonomie</a></li>
+                    <li><a href="#">homogène</a></li>
+                    <li><a href="#">Book</a></li>
+                    <li><a href="#">Flip-book</a></li>
+                    <li><a href="#">Moodle</a></li>
+                    <li><a href="#">intuition</a></li>
+                    <li><a href="#">Muve</a></li>
+                    <li><a href="#">LCMS</a></li>
+                    <li><a href="#">FOAD</a></li>
+                    <li><a href="#">Libérez-un-livre</a></li>
+                    <li><a href="#">efficacité</a></li>
+                    <li><a href="#">efficience</a></li>
+                    <li><a href="#">design</a></li>
+                    <li><a href="#">interface utilisateur</a></li>
+                    <li><a href="#">Courbe d'apprentissage</a></li>
+                    <li><a href="#">MMOG</a></li>
+                    <li><a href="#">Livre-voyageur</a></li>
+                    <li><a href="#">convivialité</a></li>
+                </ul>
+            </div>
+        </div>
+        
+     </aside>
\ No newline at end of file
index 78a811f..8344f42 100644 (file)
@@ -6,6 +6,8 @@ from django.conf import settings
 from django.contrib import admin
 from django.contrib.staticfiles.urls import staticfiles_urlpatterns
 from filebrowser.sites import site
+from django.contrib.syndication.views import Feed
+from feeds import *
 
 admin.autodiscover()
 
@@ -17,7 +19,17 @@ urlpatterns = patterns('',
     (r'^admin/filebrowser/', include(site.urls)),
     (r'^admin/', include(admin.site.urls)),
     url(r'^admin_tools/', include('admin_tools.urls')),
-    url(r'^', include('cms.urls')),
+)
+
+
+urlpatterns += patterns('',
+    (r'^flux/actualite/$', DerniereActualites()),
+    (r'^flux/appels-offre/$', DerniereAppels()),
+)
+
+#search
+urlpatterns += patterns('views',
+    (r'^recherche/$', 'search'),
 )
 
 if settings.DEBUG:
@@ -27,3 +39,14 @@ if settings.DEBUG:
         'django.views.static.serve', {
         'document_root': settings.MEDIA_ROOT, }),
         )
+
+#article
+urlpatterns += patterns('article.views',
+    (r'^actualites/(?P<slug>[-\w]+)/$', 'actualite_detail'),
+    (r'^appels-offre/(?P<slug>[-\w]+)/$', 'appel_detail'),
+)
+
+# django-cms
+urlpatterns += patterns('',
+    url(r'^', include('cms.urls')),
+)
\ No newline at end of file
diff --git a/project/views.py b/project/views.py
new file mode 100755 (executable)
index 0000000..6662ed7
--- /dev/null
@@ -0,0 +1,55 @@
+import re
+from article.models import *
+from django.shortcuts import render_to_response
+from django.template import Context, RequestContext
+from django.db.models import Q
+
+def normalize_query(query_string,
+                    findterms=re.compile(r'"([^"]+)"|(\S+)').findall,
+                    normspace=re.compile(r'\s{2,}').sub):
+    ''' Splits the query string in invidual keywords, getting rid of unecessary spaces
+        and grouping quoted words together.
+        Example:
+        
+        >>> normalize_query('  some random  words "with   quotes  " and   spaces')
+        ['some', 'random', 'words', 'with quotes', 'and', 'spaces']
+    
+    '''
+    return [normspace(' ', (t[0] or t[1]).strip()) for t in findterms(query_string)] 
+
+def get_query(query_string, search_fields):
+    ''' Returns a query, that is a combination of Q objects. That combination
+        aims to search keywords within a model by testing the given search fields.
+    
+    '''
+    query = None # Query to search for every search term        
+    terms = normalize_query(query_string)
+    for term in terms:
+        or_query = None # Query to search for a given term in each field
+        for field_name in search_fields:
+            q = Q(**{"%s__icontains" % field_name: term})
+            if or_query is None:
+                or_query = q
+            else:
+                or_query = or_query | q
+        if query is None:
+            query = or_query
+        else:
+            query = query & or_query
+    return query
+    
+def search(request):
+    query_string = ''
+    found_entries = None
+    if ('q' in request.GET) and request.GET['q'].strip():
+        query_string = request.GET['q']
+        
+        entry_query = get_query(query_string, ['titre', 'texte',])
+        
+        found_entries_appel = Appel.objects.filter(entry_query).order_by('-date_pub')
+        found_entries = Actualite.objects.filter(entry_query).order_by('-date_pub')
+    
+    print query_string
+    return render_to_response('search.html',
+                          { 'query_string': query_string, 'found_entries': found_entries, 'found_entries_appel': found_entries_appel, 'page_title': "Moteur de recherche" },
+                          context_instance=RequestContext(request))
\ No newline at end of file