Projet

Général

Profil

0001-api-optimize-fillslot-endpoint-calculation-in-meetin.patch

Frédéric Péters, 10 août 2017 10:53

Télécharger (2,19 ko)

Voir les différences:

Subject: [PATCH] api: optimize fillslot endpoint calculation in
 meetings/datetimes API (#17954)

 chrono/api/views.py | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)
chrono/api/views.py
173 173

  
174 174
        entries.sort(key=lambda x: x.start_datetime)
175 175

  
176
        # generate a fake event pk, it shouldn't be part of agenda.slug and not
177
        # a valid event id (this is done by prefixing with 0).
178
        for i in range(1000):
179
            fake_event_pk = '0%s' % i
180
            if not fake_event_pk in agenda.slug:
181
                break
182

  
183
        fillslot_url = request.build_absolute_uri(
184
                reverse('api-fillslot',
185
                    kwargs={
186
                        'agenda_identifier': agenda.slug,
187
                        'event_pk': fake_event_pk,
188
                        }))
189

  
176 190
        response = {'data': [{'id': x.id,
177 191
                              'datetime': localtime(x.start_datetime).strftime('%Y-%m-%d %H:%M:%S'),
178 192
                              'text': unicode(x),
179 193
                              'disabled': bool(x.full),
180 194
                              'api': {
181
                                  'fillslot_url': request.build_absolute_uri(
182
                                      reverse('api-fillslot',
183
                                          kwargs={
184
                                              'agenda_identifier': agenda.slug,
185
                                              'event_pk': x.id,
186
                                      })),
187
                                  }
188
                              } for x in entries]}
195
                                'fillslot_url': fillslot_url.replace(fake_event_pk, str(x.id)),
196
                              },
197
                             } for x in entries]}
189 198
        return Response(response)
190 199

  
191 200
meeting_datetimes = MeetingDatetimes.as_view()
192
-