Project

General

Profile

« Previous | Next » 

Revision 0f0cacbb

Added by Jérôme Schneider over 12 years ago

Agenda: begin graphic integration

View differences:

calebasse/agenda/templates/agenda/index.html
89 89
     <input type="text"/>
90 90
    </div>
91 91
    <dl>
92
     <dt>Assistants</dt>
92
     {% for workers_type in workers_types %}
93
     <dt>{{ workers_type.type }}</dt>
93 94
     <dd><ul>
94
       <li class="person-item" data-target=".andika-triwidada.agenda">Andika Triwidada</li>
95
       <li class="person-item" data-target=".andika-triwidada.agenda">Paolo Bacchilega</li>
96
     </ul></dd>
97
     <dt>Orthophonistes</dt>
98
     <dd><ul>
99
       <li class="person-item active" data-target=".sandy-kilo.agenda">Sandy Kilo <span title="cliquer pour déselectionner">(-)</span></li>
100
       <li class="person-item active" data-target=".bob-leponge.agenda">Bob Léponge <span title="cliquer pour déselectionner">(-)</span></li>
101
       <li class="person-item active">Pol Lepoulpe</li>
95
       {% for worker in workers_type.workers %}
96
       <li class="person-item" data-target=".andika-triwidada.agenda">{{ worker.display_name }}</li>
97
       {% endfor %}
102 98
     </ul></dd>
99
     {% endfor %}
103 100
   </dl>
104 101
 </div>
105 102
{% endblock %}
calebasse/agenda/urls.py
3 3
from django.conf.urls import url, patterns, include
4 4

  
5 5
from calebasse.cbv import TemplateView
6
from views import redirect_today
6
from views import redirect_today, AgendaHomepageView
7 7

  
8 8

  
9 9
agenda_patterns = patterns('',
10 10
            url(r'^$',
11
                TemplateView.as_view(
11
                AgendaHomepageView.as_view(
12 12
                    template_name='agenda/index.html'),
13 13
                name='agenda'),
14 14
            url(r'^activite-du-service/$',
......
28 28
urlpatterns = patterns('',
29 29
        url(r'^$', redirect_today),
30 30
        url(r'^(?P<date>[^/]*)/', include(agenda_patterns)))
31

  
calebasse/agenda/views.py
1
import ipdb
1 2
import datetime
2 3

  
3 4
from django.shortcuts import redirect
4 5

  
5 6
from calebasse.cbv import TemplateView
6 7
from calebasse.personnes.models import Worker
8
from calebasse.ressources.models import WorkerType
7 9

  
8 10
def redirect_today(request, service):
9 11
    '''If not date is given we redirect on the agenda for today'''
......
11 13
            service=service)
12 14

  
13 15
class AgendaHomepageView(TemplateView):
16

  
14 17
    template_name = 'agenda/index.html'
15 18

  
16 19
    def get_context_data(self, **kwargs):
17 20
        context = super(AgendaHomepageView, self).get_context_data(**kwargs)
18
        #context['therapeutes'] = Therapeute.objects.for_service(self.service)
19
        #context['personnels'] = Personnel.objects.for_service(self.service)
21
        context['workers_types'] = []
22
        for worker_type in WorkerType.objects.all():
23
            data = {'type': worker_type.name, 'workers': Worker.objects.for_service(self.service, worker_type) }
24
            context['workers_types'].append(data)
20 25
        return context
calebasse/personnes/models.py
3 3
from django.db import models
4 4
from django.contrib.auth.models import User
5 5

  
6
from calebasse.ressources.models import WorkerType
6 7
from calebasse.models import WeekdayField, BaseModelMixin
7 8

  
8 9
class People(BaseModelMixin, models.Model):
......
18 19
    def __unicode__(self):
19 20
        return self.display_name
20 21

  
22
class WorkerManager(models.Manager):
23

  
24
    def for_service(self, service, type=None):
25
        if type:
26
            return self.filter(services__in=[service]).filter(type=type)
27
        else:
28
            return self.filter(services__in=[service])
29
    
30

  
21 31
class Worker(People):
32
    objects = WorkerManager()
33
    # TODO : use manytomany here ?
22 34
    type = models.ForeignKey('ressources.WorkerType',
23 35
            verbose_name=u'Type de personnel')
24 36
    services = models.ManyToManyField('ressources.Service')

Also available in: Unified diff