family: user_external_template of agenda cell (#56730)
gitea-wip/combo/pipeline/head There was a failure building this commit Details
gitea/combo/pipeline/head Build started... Details

This commit is contained in:
Lauréline Guérin 2021-09-07 11:10:18 +02:00
parent 389465cb57
commit 90aa90b991
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 29 additions and 7 deletions

View File

@ -0,0 +1,21 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('family', '0006_weekly_agenda_cell'),
]
operations = [
migrations.RemoveField(
model_name='weeklyagendacell',
name='user_external_id_key',
),
migrations.AddField(
model_name='weeklyagendacell',
name='user_external_template',
field=models.CharField(default='', max_length=255),
preserve_default=False,
),
]

View File

@ -58,7 +58,7 @@ class FamilyInfosCell(CellBase):
class WeeklyAgendaCell(JsonCellBase):
title = models.CharField(_('Title'), max_length=150, blank=True)
agenda_reference = models.CharField(_('Agenda'), max_length=128)
user_external_id_key = models.CharField(max_length=50)
user_external_template = models.CharField(max_length=255)
default_template_name = 'family/weekly_agenda.html'
force_async = True
@ -81,9 +81,10 @@ class WeeklyAgendaCell(JsonCellBase):
if not chrono_url.endswith('/'):
chrono_url += '/'
# XXX events=all param is not supported for now
return (
'%sapi/agendas/datetimes/?agendas=%s&user_external_id=%s:{{ user_external_id|default:user_nameid }}'
% (chrono_url, self.agenda_reference, self.user_external_id_key)
return '%sapi/agendas/datetimes/?agendas=%s&user_external_id=%s' % (
chrono_url,
self.agenda_reference,
self.user_external_template,
)
def is_visible(self, **kwargs):

View File

@ -67,7 +67,7 @@ def test_weeklyagenda_cell(settings, context):
# wrong url
assert (
requests_get.call_args_list[0][0][0]
== 'http://chrono.example.org/api/agendas/datetimes/?agendas=&user_external_id=:'
== 'http://chrono.example.org/api/agendas/datetimes/?agendas=&user_external_id='
)
cell.agenda_reference = 'some-agenda'
@ -78,10 +78,10 @@ def test_weeklyagenda_cell(settings, context):
cell.render(context)
assert (
requests_get.call_args_list[0][0][0]
== 'http://chrono.example.org/api/agendas/datetimes/?agendas=some-agenda&user_external_id=:xyz'
== 'http://chrono.example.org/api/agendas/datetimes/?agendas=some-agenda&user_external_id='
)
cell.user_external_id_key = 'some-key'
cell.user_external_template = 'some-key:{{ user_nameid }}'
cell.save()
with mock.patch('combo.utils.requests.get') as requests_get:
requests_get.return_value = MockedRequestResponse(content=json.dumps(data))