Projet

Général

Profil

0001-agendas-share-booking-colors-between-agendas-50379.patch

Valentin Deniaud, 25 janvier 2021 18:08

Télécharger (2,46 ko)

Voir les différences:

Subject: [PATCH] agendas: share booking colors between agendas (#50379)

 chrono/agendas/models.py | 5 ++---
 chrono/api/views.py      | 2 +-
 chrono/manager/views.py  | 2 +-
 3 files changed, 4 insertions(+), 5 deletions(-)
chrono/agendas/models.py
1059 1059
class BookingColor(models.Model):
1060 1060
    COLOR_COUNT = 8
1061 1061

  
1062
    agenda = models.ForeignKey(Agenda, on_delete=models.CASCADE, related_name='booking_colors')
1063 1062
    label = models.CharField(_('Label'), max_length=250)
1064 1063
    index = models.PositiveSmallIntegerField()
1065 1064

  
1066 1065
    class Meta:
1067
        unique_together = ('agenda', 'label')
1066
        unique_together = ('label',)
1068 1067
        ordering = ('pk',)
1069 1068

  
1070 1069
    def save(self, *args, **kwargs):
1071 1070
        if self.index is None:
1072
            last_color = BookingColor.objects.filter(agenda=self.agenda).last() or BookingColor(index=-1)
1071
            last_color = BookingColor.objects.last() or BookingColor(index=-1)
1073 1072
            self.index = (last_color.index + 1) % self.COLOR_COUNT
1074 1073
        super().save(*args, **kwargs)
1075 1074

  
chrono/api/views.py
954 954

  
955 955
            color_label = payload.get('use_color_for')
956 956
            if color_label:
957
                color = BookingColor.objects.get_or_create(agenda=agenda, label=color_label)[0]
957
                color = BookingColor.objects.get_or_create(label=color_label)[0]
958 958

  
959 959
            available_desk = None
960 960

  
chrono/manager/views.py
886 886
            except ValueError:  # no meeting types defined
887 887
                context['hour_span'] = 1
888 888
            context['booking_colors'] = BookingColor.objects.filter(
889
                agenda=self.agenda, bookings__event__in=self.object_list
889
                bookings__event__in=self.object_list
890 890
            ).distinct()
891 891
        context['user_can_manage'] = self.agenda.can_be_managed(self.request.user)
892 892
        return context
893
-