api: add parameter to disable the ics export's organizer (#69883)

This commit is contained in:
Benjamin Dauvergne 2022-10-04 18:26:25 +02:00
parent 51977b0834
commit 886487f623
2 changed files with 12 additions and 8 deletions

View File

@ -2099,13 +2099,14 @@ class Booking(models.Model):
vevent.add('dtstart').value = self.event.start_datetime
if self.user_name:
vevent.add('attendee').value = self.user_name
organizer_name = getattr(settings, 'TEMPLATE_VARS', {}).get('global_title', 'chrono')
organizer_email = getattr(settings, 'TEMPLATE_VARS', {}).get(
'default_from_email', 'chrono@example.net'
)
organizer = vevent.add('organizer')
organizer.value = f'mailto:{organizer_email}'
organizer.cn_param = organizer_name
if request is None or request.GET.get('organizer') != 'no':
organizer_name = getattr(settings, 'TEMPLATE_VARS', {}).get('global_title', 'chrono')
organizer_email = getattr(settings, 'TEMPLATE_VARS', {}).get(
'default_from_email', 'chrono@example.net'
)
organizer = vevent.add('organizer')
organizer.value = f'mailto:{organizer_email}'
organizer.cn_param = organizer_name
if self.event.end_datetime:
vevent.add('dtend').value = self.event.end_datetime

View File

@ -12,7 +12,7 @@ from chrono.utils.lingo import CheckType
pytestmark = pytest.mark.django_db
def test_booking_ics(app, some_data, meetings_agenda, user, settings):
def test_booking_ics(app, some_data, meetings_agenda, user, settings, rf):
agenda = Agenda.objects.filter(label='Foo bar')[0]
event = [x for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()][0]
@ -26,6 +26,9 @@ def test_booking_ics(app, some_data, meetings_agenda, user, settings):
assert 'DTEND:' not in booking_ics
assert 'ORGANIZER;CN=chrono:mailto:chrono@example.net\r\n' in booking_ics
booking_ics = booking.get_ics(rf.get('/?organizer=no'))
assert 'ORGANIZER' not in booking_ics
settings.TEMPLATE_VARS = {
'global_title': 'meeting server',
'default_from_email': 'donotanswer@meeting-server.com',