misc: apply pyupgrade (#55867)
This commit is contained in:
parent
c0e2726e67
commit
1ec4ad9376
|
@ -14,7 +14,6 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import sys
|
||||
|
||||
|
@ -39,5 +38,5 @@ class Command(BaseCommand):
|
|||
source.refresh_timeperiod_exceptions_from_ics()
|
||||
except ICSError as e:
|
||||
print(
|
||||
u'unable to create timeperiod exceptions for "%s": %s' % (source.desk, e), file=sys.stderr
|
||||
'unable to create timeperiod exceptions for "%s": %s' % (source.desk, e), file=sys.stderr
|
||||
)
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.contrib.postgres.fields import JSONField
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import datetime
|
||||
|
||||
from django.db import migrations, models
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.utils.text import slugify
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import datetime
|
||||
|
||||
from django.db import migrations, models
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.12 on 2018-04-26 11:27
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.12 on 2018-12-06 12:52
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.20 on 2019-03-14 15:06
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.12 on 2019-09-17 06:36
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2019-11-06 12:20
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.utils.text import slugify
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2019-11-07 11:25
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
@ -19,10 +17,10 @@ class Migration(migrations.Migration):
|
|||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='desk',
|
||||
unique_together=set([('agenda', 'slug')]),
|
||||
unique_together={('agenda', 'slug')},
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='meetingtype',
|
||||
unique_together=set([('agenda', 'slug')]),
|
||||
unique_together={('agenda', 'slug')},
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.17 on 2019-11-27 08:19
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
@ -21,6 +19,6 @@ class Migration(migrations.Migration):
|
|||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='event',
|
||||
unique_together=set([('agenda', 'slug')]),
|
||||
unique_together={('agenda', 'slug')},
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2019-12-09 14:24
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.17 on 2019-12-23 17:58
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
import chrono.agendas.models
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-02-20 12:15
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-02-25 07:33
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-02-26 13:27
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django
|
||||
from django.db import migrations
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-05-30 13:13
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-06-17 13:21
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-06-17 13:23
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import uuid
|
||||
|
||||
from django.db import migrations
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
import chrono.agendas.models
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, transaction
|
||||
from django.db.utils import InternalError, OperationalError, ProgrammingError
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, transaction
|
||||
from django.db.utils import InternalError, OperationalError, ProgrammingError
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-07-29 09:42
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-08-11 14:11
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.contrib.postgres.fields import JSONField
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-08-31 14:34
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-08-31 14:36
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-09-03 08:40
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-09-03 08:41
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.contrib.postgres.fields
|
||||
import django.db.models.deletion
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-09-09 15:52
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-09-15 12:01
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-09-28 12:45
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
import chrono.agendas.models
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-10-05 12:37
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-10-21 11:56
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.db.models import Count, F
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-10-21 15:46
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
@ -14,6 +12,6 @@ class Migration(migrations.Migration):
|
|||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name='timeperiodexceptionsource',
|
||||
unique_together=set([('desk', 'settings_slug')]),
|
||||
unique_together={('desk', 'settings_slug')},
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-10-27 09:32
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2020-10-29 15:39
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.29 on 2020-12-02 17:34
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
@ -47,6 +45,6 @@ class Migration(migrations.Migration):
|
|||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='bookingcolor',
|
||||
unique_together=set([('agenda', 'label')]),
|
||||
unique_together={('agenda', 'label')},
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2021-01-25 17:00
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
@ -23,7 +21,7 @@ class Migration(migrations.Migration):
|
|||
migrations.RunPython(booking_color_unique_label, migrations.RunPython.noop),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='bookingcolor',
|
||||
unique_together=set([('label',)]),
|
||||
unique_together={('label',)},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='bookingcolor',
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2021-02-16 14:53
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.contrib.postgres.fields import JSONField
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2021-02-16 15:10
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2021-01-27 16:46
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# chrono - agendas system
|
||||
# Copyright (C) 2016 Entr'ouvert
|
||||
#
|
||||
|
@ -991,9 +990,9 @@ class VirtualMember(models.Model):
|
|||
virtual_meetingtypes = self.virtual_agenda.iter_meetingtypes(excluded_agenda=self.real_agenda)
|
||||
if not virtual_meetingtypes:
|
||||
return
|
||||
virtual_meetingtypes = set([(mt.label, mt.slug, mt.duration) for mt in virtual_meetingtypes])
|
||||
virtual_meetingtypes = {(mt.label, mt.slug, mt.duration) for mt in virtual_meetingtypes}
|
||||
real_meetingtypes = self.real_agenda.iter_meetingtypes()
|
||||
real_meetingtypes = set([(mt.label, mt.slug, mt.duration) for mt in real_meetingtypes])
|
||||
real_meetingtypes = {(mt.label, mt.slug, mt.duration) for mt in real_meetingtypes}
|
||||
if virtual_meetingtypes - real_meetingtypes:
|
||||
# missing meeting type in real agenda
|
||||
for mt in virtual_meetingtypes - real_meetingtypes:
|
||||
|
@ -1038,7 +1037,7 @@ class TimePeriod(models.Model):
|
|||
ordering = ['weekday', 'start_time']
|
||||
|
||||
def __str__(self):
|
||||
return u'%s / %s → %s' % (
|
||||
return '%s / %s → %s' % (
|
||||
force_text(WEEKDAYS[self.weekday]),
|
||||
date_format(self.start_time, 'TIME_FORMAT'),
|
||||
date_format(self.end_time, 'TIME_FORMAT'),
|
||||
|
@ -1123,7 +1122,7 @@ class SharedTimePeriod:
|
|||
self.desks = set(desks)
|
||||
|
||||
def __str__(self):
|
||||
return u'%s / %s → %s' % (
|
||||
return '%s / %s → %s' % (
|
||||
force_text(WEEKDAYS[self.weekday]),
|
||||
date_format(self.start_time, 'TIME_FORMAT'),
|
||||
date_format(self.end_time, 'TIME_FORMAT'),
|
||||
|
@ -2118,7 +2117,7 @@ class Category(models.Model):
|
|||
|
||||
|
||||
def ics_directory_path(instance, filename):
|
||||
return 'ics/{0}/{1}'.format(str(uuid.uuid4()), filename)
|
||||
return f'ics/{str(uuid.uuid4())}/{filename}'
|
||||
|
||||
|
||||
class TimePeriodExceptionSource(models.Model):
|
||||
|
@ -2462,27 +2461,27 @@ class TimePeriodException(models.Model):
|
|||
# if both dates are at midnight don't include the time part
|
||||
if self.end_datetime == self.start_datetime + datetime.timedelta(days=1):
|
||||
# a single day
|
||||
exc_repr = u'%s' % date_format(localtime(self.start_datetime), 'SHORT_DATE_FORMAT')
|
||||
exc_repr = '%s' % date_format(localtime(self.start_datetime), 'SHORT_DATE_FORMAT')
|
||||
else:
|
||||
exc_repr = u'%s → %s' % (
|
||||
exc_repr = '%s → %s' % (
|
||||
date_format(localtime(self.start_datetime), 'SHORT_DATE_FORMAT'),
|
||||
date_format(localtime(self.end_datetime), 'SHORT_DATE_FORMAT'),
|
||||
)
|
||||
else:
|
||||
if localtime(self.start_datetime).date() == localtime(self.end_datetime).date():
|
||||
# same day
|
||||
exc_repr = u'%s → %s' % (
|
||||
exc_repr = '%s → %s' % (
|
||||
date_format(localtime(self.start_datetime), 'SHORT_DATETIME_FORMAT'),
|
||||
date_format(localtime(self.end_datetime), 'TIME_FORMAT'),
|
||||
)
|
||||
else:
|
||||
exc_repr = u'%s → %s' % (
|
||||
exc_repr = '%s → %s' % (
|
||||
date_format(localtime(self.start_datetime), 'SHORT_DATETIME_FORMAT'),
|
||||
date_format(localtime(self.end_datetime), 'SHORT_DATETIME_FORMAT'),
|
||||
)
|
||||
|
||||
if self.label:
|
||||
exc_repr = u'%s (%s)' % (self.label, exc_repr)
|
||||
exc_repr = '%s (%s)' % (self.label, exc_repr)
|
||||
|
||||
return exc_repr
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# chrono - agendas system
|
||||
# Copyright (C) 2019 Entr'ouvert
|
||||
#
|
||||
|
|
|
@ -256,8 +256,8 @@ def get_all_slots(
|
|||
user_bookings = IntervalSet()
|
||||
if user_external_id:
|
||||
used_min_datetime, used_max_datetime = (
|
||||
min([v[0] for v in agenda_id_min_max_datetime.values()]),
|
||||
max([v[1] for v in agenda_id_min_max_datetime.values()]),
|
||||
min(v[0] for v in agenda_id_min_max_datetime.values()),
|
||||
max(v[1] for v in agenda_id_min_max_datetime.values()),
|
||||
)
|
||||
booked_events = (
|
||||
Event.objects.filter(
|
||||
|
@ -558,7 +558,7 @@ def get_resources_from_request(request, agenda):
|
|||
resources_slugs = [s for s in request.GET['resources'].split(',') if s]
|
||||
resources = list(agenda.resources.filter(slug__in=resources_slugs))
|
||||
if len(resources) != len(resources_slugs):
|
||||
unknown_slugs = set(resources_slugs) - set([r.slug for r in resources])
|
||||
unknown_slugs = set(resources_slugs) - {r.slug for r in resources}
|
||||
unknown_slugs = sorted(list(unknown_slugs))
|
||||
raise APIError(
|
||||
_('invalid resource: %s') % ', '.join(unknown_slugs),
|
||||
|
@ -2027,8 +2027,8 @@ class ResizeBooking(APIView):
|
|||
'err_desc': _('secondary booking'),
|
||||
}
|
||||
return Response(response)
|
||||
event_ids = set([event.pk])
|
||||
in_waiting_list = set([booking.in_waiting_list])
|
||||
event_ids = {event.pk}
|
||||
in_waiting_list = {booking.in_waiting_list}
|
||||
secondary_bookings = booking.secondary_booking_set.all().order_by('-creation_datetime')
|
||||
for secondary in secondary_bookings:
|
||||
event_ids.add(secondary.event_id)
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import collections
|
||||
import csv
|
||||
|
|
|
@ -44,7 +44,7 @@ class Command(BaseCommand):
|
|||
overwrite=options['overwrite'],
|
||||
)
|
||||
except AgendaImportError as exc:
|
||||
raise CommandError(u'%s' % exc)
|
||||
raise CommandError('%s' % exc)
|
||||
|
||||
if filename == '-':
|
||||
fd = sys.stdin
|
||||
|
|
|
@ -296,8 +296,8 @@ class ResourceDayView(DateMixin, DayArchiveView):
|
|||
x for x in self.object_list if any([y.cancellation_datetime is None for y in x.booking_set.all()])
|
||||
]
|
||||
if active_events:
|
||||
min_event = min([localtime(x.start_datetime).time() for x in active_events])
|
||||
max_event = max([localtime(x.start_datetime + interval).time() for x in active_events])
|
||||
min_event = min(localtime(x.start_datetime).time() for x in active_events)
|
||||
max_event = max(localtime(x.start_datetime + interval).time() for x in active_events)
|
||||
if min_timeperiod is None and min_event is None:
|
||||
return
|
||||
min_display = min(min_timeperiod or datetime.time(23), min_event or datetime.time(23))
|
||||
|
@ -396,8 +396,8 @@ class ResourceMonthView(DateMixin, MonthArchiveView):
|
|||
x for x in self.object_list if any([y.cancellation_datetime is None for y in x.booking_set.all()])
|
||||
]
|
||||
if active_events:
|
||||
min_event = min([localtime(x.start_datetime).time() for x in active_events])
|
||||
max_event = max([localtime(x.start_datetime + interval).time() for x in active_events])
|
||||
min_event = min(localtime(x.start_datetime).time() for x in active_events)
|
||||
max_event = max(localtime(x.start_datetime + interval).time() for x in active_events)
|
||||
hide_sunday_event = not any([x.start_datetime.weekday() == 6 for x in active_events])
|
||||
hide_weekend_event = hide_sunday_event and not any(
|
||||
[x.start_datetime.weekday() == 5 for x in active_events]
|
||||
|
@ -807,7 +807,7 @@ class AgendasImportView(FormView):
|
|||
try:
|
||||
results = import_site(agendas_json, overwrite=False)
|
||||
except AgendaImportError as exc:
|
||||
form.add_error('agendas_json', u'%s' % exc)
|
||||
form.add_error('agendas_json', '%s' % exc)
|
||||
return self.form_invalid(form)
|
||||
except KeyError as exc:
|
||||
form.add_error('agendas_json', _('Key "%s" is missing.') % exc.args[0])
|
||||
|
@ -885,7 +885,7 @@ class AgendasImportView(FormView):
|
|||
else:
|
||||
message2 = message_update
|
||||
|
||||
messages.info(self.request, u'%s %s' % (message1, message2))
|
||||
messages.info(self.request, '%s %s' % (message1, message2))
|
||||
|
||||
if global_noop:
|
||||
messages.info(self.request, _('No data found.'))
|
||||
|
@ -1165,7 +1165,7 @@ class AgendaDayView(AgendaDateView, DayArchiveView):
|
|||
)
|
||||
|
||||
def get_timetable_infos(self):
|
||||
timeperiods = itertools.chain(*[d.timeperiod_set.all() for d in self.agenda.prefetched_desks])
|
||||
timeperiods = itertools.chain(*(d.timeperiod_set.all() for d in self.agenda.prefetched_desks))
|
||||
timeperiods = [t for t in timeperiods if t.weekday == self.date.weekday()]
|
||||
timeperiods = sorted(timeperiods, key=lambda t: t.start_time)
|
||||
|
||||
|
@ -1173,14 +1173,14 @@ class AgendaDayView(AgendaDateView, DayArchiveView):
|
|||
|
||||
min_timeperiod = max_timeperiod = min_event = max_event = None
|
||||
if timeperiods:
|
||||
min_timeperiod = min([x.start_time for x in timeperiods])
|
||||
max_timeperiod = max([x.end_time for x in timeperiods])
|
||||
min_timeperiod = min(x.start_time for x in timeperiods)
|
||||
max_timeperiod = max(x.end_time for x in timeperiods)
|
||||
active_events = [
|
||||
x for x in self.object_list if any([y.cancellation_datetime is None for y in x.booking_set.all()])
|
||||
]
|
||||
if active_events:
|
||||
min_event = min([localtime(x.start_datetime).time() for x in active_events])
|
||||
max_event = max([localtime(x.start_datetime + interval).time() for x in active_events])
|
||||
min_event = min(localtime(x.start_datetime).time() for x in active_events)
|
||||
max_event = max(localtime(x.start_datetime + interval).time() for x in active_events)
|
||||
if min_timeperiod is None and min_event is None:
|
||||
return
|
||||
min_display = min(min_timeperiod or datetime.time(23), min_event or datetime.time(23))
|
||||
|
@ -1305,7 +1305,7 @@ class AgendaMonthView(AgendaDateView, MonthArchiveView):
|
|||
return '1'
|
||||
|
||||
def get_timetable_infos(self):
|
||||
timeperiods = itertools.chain(*[d.timeperiod_set.all() for d in self.agenda.prefetched_desks])
|
||||
timeperiods = itertools.chain(*(d.timeperiod_set.all() for d in self.agenda.prefetched_desks))
|
||||
timeperiods = sorted(timeperiods, key=lambda t: (t.weekday, t.start_time))
|
||||
|
||||
interval = datetime.timedelta(minutes=60)
|
||||
|
@ -1313,8 +1313,8 @@ class AgendaMonthView(AgendaDateView, MonthArchiveView):
|
|||
min_timeperiod = max_timeperiod = min_event = max_event = None
|
||||
hide_sunday_timeperiod = hide_weekend_timeperiod = hide_sunday_event = hide_weekend_event = True
|
||||
if timeperiods:
|
||||
min_timeperiod = min([x.start_time for x in timeperiods])
|
||||
max_timeperiod = max([x.end_time for x in timeperiods])
|
||||
min_timeperiod = min(x.start_time for x in timeperiods)
|
||||
max_timeperiod = max(x.end_time for x in timeperiods)
|
||||
hide_sunday_timeperiod = not any([e.weekday == 6 for e in timeperiods])
|
||||
hide_weekend_timeperiod = hide_sunday_timeperiod and not any(
|
||||
[e.weekday == 5 for e in timeperiods]
|
||||
|
@ -1323,8 +1323,8 @@ class AgendaMonthView(AgendaDateView, MonthArchiveView):
|
|||
x for x in self.object_list if any([y.cancellation_datetime is None for y in x.booking_set.all()])
|
||||
]
|
||||
if active_events:
|
||||
min_event = min([localtime(x.start_datetime).time() for x in active_events])
|
||||
max_event = max([localtime(x.start_datetime + interval).time() for x in active_events])
|
||||
min_event = min(localtime(x.start_datetime).time() for x in active_events)
|
||||
max_event = max(localtime(x.start_datetime + interval).time() for x in active_events)
|
||||
hide_sunday_event = not any([x.start_datetime.weekday() == 6 for x in active_events])
|
||||
hide_weekend_event = hide_sunday_event and not any(
|
||||
[x.start_datetime.weekday() == 5 for x in active_events]
|
||||
|
@ -2554,7 +2554,7 @@ class TimePeriodExceptionDeleteView(ManagedTimePeriodExceptionMixin, DeleteView)
|
|||
|
||||
success_url = super().get_success_url()
|
||||
if self.desk and 'from_popup' in self.request.GET:
|
||||
success_url = '{}?display_exceptions={}'.format(success_url, self.desk.pk)
|
||||
success_url = f'{success_url}?display_exceptions={self.desk.pk}'
|
||||
return success_url
|
||||
|
||||
def get_queryset(self):
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# chrono - agendas system
|
||||
# Copyright (C) 2021 Entr'ouvert
|
||||
#
|
||||
|
|
3
setup.py
3
setup.py
|
@ -1,5 +1,4 @@
|
|||
#! /usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import glob
|
||||
import os
|
||||
|
@ -34,7 +33,7 @@ def get_version():
|
|||
tag exists, take 0.0- and add the length of the commit log.
|
||||
"""
|
||||
if os.path.exists('VERSION'):
|
||||
with open('VERSION', 'r') as v:
|
||||
with open('VERSION') as v:
|
||||
return v.read()
|
||||
if os.path.exists('.git'):
|
||||
p = subprocess.Popen(
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import datetime
|
||||
|
||||
import pytest
|
||||
|
@ -13,7 +11,7 @@ from chrono.agendas.models import Agenda, Desk, Event, MeetingType, TimePeriod,
|
|||
def user():
|
||||
User = get_user_model()
|
||||
user = User.objects.create(
|
||||
username='john.doe', first_name=u'John', last_name=u'Doe', email='john.doe@example.net'
|
||||
username='john.doe', first_name='John', last_name='Doe', email='john.doe@example.net'
|
||||
)
|
||||
user.set_password('password')
|
||||
user.save()
|
||||
|
@ -41,7 +39,7 @@ def mock_now(request, freezer, time_zone):
|
|||
|
||||
@pytest.fixture
|
||||
def some_data(mock_now):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
first_date = localtime(now()).replace(hour=17, minute=0, second=0, microsecond=0)
|
||||
first_date += datetime.timedelta(days=1)
|
||||
|
@ -49,7 +47,7 @@ def some_data(mock_now):
|
|||
event = Event(start_datetime=first_date + datetime.timedelta(days=i), places=20, agenda=agenda)
|
||||
event.save()
|
||||
|
||||
agenda2 = Agenda(label=u'Foo bar 2')
|
||||
agenda2 = Agenda(label='Foo bar 2')
|
||||
agenda2.save()
|
||||
first_date = localtime(now()).replace(hour=20, minute=0, second=0, microsecond=0)
|
||||
first_date += datetime.timedelta(days=1)
|
||||
|
@ -65,7 +63,7 @@ def some_data(mock_now):
|
|||
@pytest.fixture
|
||||
def meetings_agenda(mock_now):
|
||||
agenda = Agenda(
|
||||
label=u'Foo bar Meeting', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=56
|
||||
label='Foo bar Meeting', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=56
|
||||
)
|
||||
agenda.save()
|
||||
meeting_type = MeetingType(agenda=agenda, label='Blah', duration=30)
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import datetime
|
||||
|
||||
import pytest
|
||||
|
@ -271,7 +269,7 @@ def test_agendas_meetingtypes_api(app, some_data, meetings_agenda):
|
|||
assert resp.json == expected_resp
|
||||
|
||||
# wrong kind
|
||||
agenda1 = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda1 = Agenda.objects.filter(label='Foo bar')[0]
|
||||
resp = app.get('/api/agenda/%s/meetings/' % agenda1.slug, status=404)
|
||||
|
||||
# unknown
|
||||
|
@ -434,7 +432,7 @@ def test_agenda_detail_routing(app, meetings_agenda):
|
|||
|
||||
# check it doesn't get confused with an agenda with "agenda" in its slug
|
||||
agenda = Agenda(
|
||||
label=u'Foo bar Agenda', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=56
|
||||
label='Foo bar Agenda', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=56
|
||||
)
|
||||
agenda.save()
|
||||
api_url = '/api/agenda/%s/' % agenda.slug
|
||||
|
@ -462,14 +460,14 @@ def test_virtual_agenda_detail(app, virtual_meetings_agenda):
|
|||
|
||||
|
||||
def test_virtual_agendas_meetingtypes_api(app):
|
||||
virt_agenda = Agenda.objects.create(label=u'Virtual agenda', kind='virtual')
|
||||
virt_agenda = Agenda.objects.create(label='Virtual agenda', kind='virtual')
|
||||
|
||||
# No meetings because no real agenda
|
||||
resp = app.get('/api/agenda/%s/meetings/' % virt_agenda.slug)
|
||||
assert resp.json == {'data': []}
|
||||
|
||||
# One real agenda : every meetings exposed
|
||||
foo_agenda = Agenda.objects.create(label=u'Foo', kind='meetings')
|
||||
foo_agenda = Agenda.objects.create(label='Foo', kind='meetings')
|
||||
MeetingType.objects.create(agenda=foo_agenda, label='Meeting1', duration=30)
|
||||
MeetingType.objects.create(agenda=foo_agenda, label='Meeting2', duration=15)
|
||||
VirtualMember.objects.create(virtual_agenda=virt_agenda, real_agenda=foo_agenda)
|
||||
|
@ -497,7 +495,7 @@ def test_virtual_agendas_meetingtypes_api(app):
|
|||
|
||||
# Several real agendas
|
||||
|
||||
bar_agenda = Agenda.objects.create(label=u'Bar', kind='meetings')
|
||||
bar_agenda = Agenda.objects.create(label='Bar', kind='meetings')
|
||||
MeetingType.objects.create(agenda=bar_agenda, label='Meeting Bar', duration=30)
|
||||
VirtualMember.objects.create(virtual_agenda=virt_agenda, real_agenda=bar_agenda)
|
||||
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import datetime
|
||||
import urllib.parse as urlparse
|
||||
from unittest import mock
|
||||
|
||||
import mock
|
||||
import pytest
|
||||
from django.utils.timezone import make_aware, now
|
||||
|
||||
|
@ -21,7 +19,7 @@ pytestmark = pytest.mark.django_db
|
|||
|
||||
|
||||
def test_booking_ics(app, some_data, meetings_agenda, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
event = [x for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()][0]
|
||||
app.authorization = ('Basic', ('john.doe', 'password'))
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.id))
|
||||
|
@ -114,7 +112,7 @@ def test_booking_ics(app, some_data, meetings_agenda, user):
|
|||
assert 'COMMENT:custom comment\r\n' in resp.text
|
||||
assert 'URL:http://example.com/custom\r\n' in resp.text
|
||||
|
||||
meetings_agenda_id = Agenda.objects.filter(label=u'Foo bar Meeting')[0].id
|
||||
meetings_agenda_id = Agenda.objects.filter(label='Foo bar Meeting')[0].id
|
||||
meeting_type = MeetingType.objects.get(agenda=meetings_agenda)
|
||||
resp = app.get('/api/agenda/meetings/%s/datetimes/' % meeting_type.id)
|
||||
event = resp.json['data'][2]
|
||||
|
@ -606,7 +604,7 @@ def test_booking_patch_api_extra_data(app, user):
|
|||
|
||||
|
||||
def test_booking_cancellation_api(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
event = [x for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()][0]
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.id, event.id), status=401)
|
||||
|
||||
|
@ -619,7 +617,7 @@ def test_booking_cancellation_api(app, some_data, user):
|
|||
|
||||
|
||||
def test_booking_cancellation_post_api(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
event = [x for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()][0]
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.id, event.id), status=401)
|
||||
|
||||
|
@ -647,7 +645,7 @@ def test_booking_cancellation_post_api(app, some_data, user):
|
|||
|
||||
|
||||
def test_booking_cancellation_post_meeting_api(app, meetings_agenda, user):
|
||||
agenda_id = Agenda.objects.filter(label=u'Foo bar Meeting')[0].id
|
||||
agenda_id = Agenda.objects.filter(label='Foo bar Meeting')[0].id
|
||||
meeting_type = MeetingType.objects.get(agenda=meetings_agenda)
|
||||
resp = app.get('/api/agenda/meetings/%s/datetimes/' % meeting_type.id)
|
||||
nb_events = len(resp.json['data'])
|
||||
|
@ -760,7 +758,7 @@ def test_bookings(app, user):
|
|||
|
||||
|
||||
def test_cancel_booking(app, some_data, user):
|
||||
agenda_id = Agenda.objects.filter(label=u'Foo bar')[0].pk
|
||||
agenda_id = Agenda.objects.filter(label='Foo bar')[0].pk
|
||||
event = Event.objects.filter(agenda_id=agenda_id).exclude(start_datetime__lt=now())[0]
|
||||
primary = Booking.objects.create(event=event)
|
||||
secondary = Booking.objects.create(event=event, primary_booking=primary)
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import datetime
|
||||
import urllib.parse as urlparse
|
||||
|
||||
|
@ -13,7 +11,7 @@ pytestmark = pytest.mark.django_db
|
|||
|
||||
|
||||
def test_datetimes_api(app, some_data):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
|
||||
def check_bookability(data):
|
||||
for event in data:
|
||||
|
@ -79,7 +77,7 @@ def test_datetime_api_fr(app):
|
|||
agenda = Agenda.objects.create(label='Foo bar', kind='events', minimal_booking_delay=0)
|
||||
Event.objects.create(
|
||||
slug='event-slug',
|
||||
start_datetime=localtime((now() + datetime.timedelta(days=5))).replace(hour=17, minute=0),
|
||||
start_datetime=localtime(now() + datetime.timedelta(days=5)).replace(hour=17, minute=0),
|
||||
places=5,
|
||||
agenda=agenda,
|
||||
)
|
||||
|
@ -339,7 +337,7 @@ def test_datetimes_api_hide_disabled(app):
|
|||
|
||||
|
||||
def test_waiting_list_datetimes(app, some_data, user):
|
||||
agenda_id = Agenda.objects.filter(label=u'Foo bar')[0].id
|
||||
agenda_id = Agenda.objects.filter(label='Foo bar')[0].id
|
||||
event = Event.objects.filter(agenda_id=agenda_id).exclude(start_datetime__lt=now())[0]
|
||||
event.waiting_list_places = 5
|
||||
event.save()
|
||||
|
@ -489,7 +487,7 @@ def test_datetimes_api_meta(app, freezer):
|
|||
# 2017-05-20 -> saturday
|
||||
freezer.move_to(make_aware(datetime.datetime(year=2017, month=5, day=20, hour=1, minute=12)))
|
||||
|
||||
agenda = Agenda.objects.create(label=u'Foo bar')
|
||||
agenda = Agenda.objects.create(label='Foo bar')
|
||||
first_date = localtime(now()).replace(hour=17, minute=0, second=0, microsecond=0)
|
||||
first_date += datetime.timedelta(days=1)
|
||||
for i in range(3):
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import datetime
|
||||
|
||||
import pytest
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import datetime
|
||||
import urllib.parse as urlparse
|
||||
from unittest import mock
|
||||
|
||||
import mock
|
||||
import pytest
|
||||
from django.db import connection
|
||||
from django.test.utils import CaptureQueriesContext
|
||||
|
@ -25,7 +23,7 @@ pytestmark = pytest.mark.django_db
|
|||
|
||||
|
||||
def test_booking_api(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
event = [x for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()][0]
|
||||
|
||||
# unauthenticated
|
||||
|
@ -269,7 +267,7 @@ def test_booking_api_meetings_agenda_exclude_slots(app, user):
|
|||
|
||||
|
||||
def test_booking_api_fillslots(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
events_ids = [x.id for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()]
|
||||
events_slugs = [x.slug for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()]
|
||||
assert len(events_ids) == 3
|
||||
|
@ -411,7 +409,7 @@ def test_booking_api_fillslots(app, some_data, user):
|
|||
|
||||
|
||||
def test_booking_api_fillslots_slots_string_param(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
events_ids = [x.id for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()]
|
||||
assert len(events_ids) == 3
|
||||
app.authorization = ('Basic', ('john.doe', 'password'))
|
||||
|
@ -761,7 +759,7 @@ def test_booking_api_meeting_across_daylight_saving_time(app, meetings_agenda, u
|
|||
|
||||
|
||||
def test_booking_api_with_data(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
event = [x for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()][0]
|
||||
|
||||
app.authorization = ('Basic', ('john.doe', 'password'))
|
||||
|
@ -855,7 +853,7 @@ def test_booking_api_available(app, user):
|
|||
|
||||
|
||||
def test_booking_api_force_waiting_list(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
event = [x for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()][0]
|
||||
|
||||
app.authorization = ('Basic', ('john.doe', 'password'))
|
||||
|
@ -935,7 +933,7 @@ def test_booking_api_force_waiting_list(app, some_data, user):
|
|||
|
||||
|
||||
def test_booking_api_with_cancel_booking(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
event_0, event_1, event_2 = [x for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()][
|
||||
0:4
|
||||
]
|
||||
|
@ -1017,7 +1015,7 @@ def test_booking_api_with_cancel_booking(app, some_data, user):
|
|||
|
||||
|
||||
def test_soldout(app, some_data, user):
|
||||
agenda_id = Agenda.objects.filter(label=u'Foo bar')[0].id
|
||||
agenda_id = Agenda.objects.filter(label='Foo bar')[0].id
|
||||
event = Event.objects.filter(agenda_id=agenda_id).exclude(start_datetime__lt=now())[0]
|
||||
|
||||
resp = app.get('/api/agenda/%s/datetimes/' % agenda_id)
|
||||
|
@ -1041,7 +1039,7 @@ def test_soldout(app, some_data, user):
|
|||
|
||||
|
||||
def test_waiting_list_booking(app, some_data, user):
|
||||
agenda_id = Agenda.objects.filter(label=u'Foo bar')[0].id
|
||||
agenda_id = Agenda.objects.filter(label='Foo bar')[0].id
|
||||
event = Event.objects.filter(agenda_id=agenda_id).exclude(start_datetime__lt=now())[0]
|
||||
event.waiting_list_places = 5
|
||||
event.save()
|
||||
|
@ -1084,7 +1082,7 @@ def test_waiting_list_booking(app, some_data, user):
|
|||
|
||||
|
||||
def test_multiple_booking_api(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
event = [x for x in Event.objects.filter(agenda=agenda) if x.in_bookable_period()][0]
|
||||
|
||||
app.authorization = ('Basic', ('john.doe', 'password'))
|
||||
|
@ -1174,7 +1172,7 @@ def test_multiple_booking_api(app, some_data, user):
|
|||
|
||||
|
||||
def test_multiple_booking_api_fillslots(app, some_data, user):
|
||||
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
||||
agenda = Agenda.objects.filter(label='Foo bar')[0]
|
||||
# get slots of first 2 events
|
||||
events = [
|
||||
x for x in Event.objects.filter(agenda=agenda).order_by('start_datetime') if x.in_bookable_period()
|
||||
|
@ -1287,7 +1285,7 @@ def test_multiple_booking_api_fillslots(app, some_data, user):
|
|||
|
||||
|
||||
def test_multiple_booking_move_booking(app, user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
first_date = localtime(now()).replace(hour=17, minute=0, second=0, microsecond=0)
|
||||
first_date += datetime.timedelta(days=1)
|
||||
|
@ -1623,7 +1621,7 @@ def test_virtual_agendas_meetings_booking(app, mock_now, user):
|
|||
== resp.json['data'][0]['datetime']
|
||||
)
|
||||
second_booking_agenda = resp_booking.json['agenda']['slug']
|
||||
assert set([first_booking_agenda, second_booking_agenda]) == {'foo-meeting', 'bar-meeting'}
|
||||
assert {first_booking_agenda, second_booking_agenda} == {'foo-meeting', 'bar-meeting'}
|
||||
|
||||
# try booking the same timeslot a third time: full
|
||||
resp_booking = app.post(fillslot_url)
|
||||
|
@ -1794,7 +1792,7 @@ def test_virtual_agendas_meetings_booking_default_policy(app, mock_now, user):
|
|||
|
||||
@pytest.mark.freeze_time('2017-04-01')
|
||||
def test_duration_on_booking_api_fillslot_response(app, user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
first_date = datetime.datetime(2017, 5, 20, 1, 12)
|
||||
durations = [None, 0, 45]
|
||||
|
@ -1842,7 +1840,7 @@ def test_duration_on_booking_api_fillslot_response(app, user):
|
|||
|
||||
@pytest.mark.freeze_time('2017-04-01')
|
||||
def test_duration_on_booking_api_fillslots_response(app, user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
first_date = datetime.datetime(2017, 5, 20, 1, 12)
|
||||
durations = [None, 0, 45]
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import datetime
|
||||
|
||||
import pytest
|
||||
|
@ -884,7 +882,7 @@ def test_agenda_meeting_api_desk_info(app, meetings_agenda, user):
|
|||
@pytest.mark.freeze_time('2017-05-20')
|
||||
def test_agenda_meeting_gcd_durations(app, user):
|
||||
meetings_agenda = Agenda.objects.create(
|
||||
label=u'Foo bar Meeting', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=8
|
||||
label='Foo bar Meeting', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=8
|
||||
)
|
||||
meeting_type_30 = MeetingType.objects.create(agenda=meetings_agenda, label='Blah', duration=30)
|
||||
desk = Desk.objects.create(agenda=meetings_agenda, label='Desk 1')
|
||||
|
@ -955,7 +953,7 @@ def test_agenda_meeting_gcd_durations(app, user):
|
|||
@pytest.mark.freeze_time('2017-05-20')
|
||||
def test_agenda_meeting_gcd_durations_and_exceptions(app, user):
|
||||
meetings_agenda = Agenda.objects.create(
|
||||
label=u'Foo bar Meeting', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=3
|
||||
label='Foo bar Meeting', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=3
|
||||
)
|
||||
desk = Desk.objects.create(agenda=meetings_agenda, label='Desk 1')
|
||||
TimePeriod.objects.create(
|
||||
|
@ -1131,7 +1129,7 @@ def test_virtual_agendas_meetings_datetimes_api(app, virtual_meetings_agenda):
|
|||
|
||||
def test_virtual_agendas_meetings_datetimes_api_with_similar_desk(app):
|
||||
agenda_foo = Agenda.objects.create(
|
||||
label=u'Agenda Foo', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=4
|
||||
label='Agenda Foo', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=4
|
||||
)
|
||||
MeetingType.objects.create(agenda=agenda_foo, label='Meeting Type', duration=30)
|
||||
test_1st_weekday = (localtime(now()).weekday() + 1) % 7
|
||||
|
@ -1159,7 +1157,7 @@ def test_virtual_agendas_meetings_datetimes_api_with_similar_desk(app):
|
|||
)
|
||||
|
||||
agenda_bar = Agenda.objects.create(
|
||||
label=u'Agenda Bar', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=4
|
||||
label='Agenda Bar', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=4
|
||||
)
|
||||
meeting_type_bar = MeetingType.objects.create(agenda=agenda_bar, label='Meeting Type', duration=30)
|
||||
desk_bar = Desk.objects.create(agenda=agenda_bar, label='Desk 1')
|
||||
|
@ -1183,7 +1181,7 @@ def test_virtual_agendas_meetings_datetimes_api_with_similar_desk(app):
|
|||
)
|
||||
|
||||
virtual_agenda = Agenda.objects.create(
|
||||
label=u'Agenda Virtual', kind='virtual', minimal_booking_delay=1, maximal_booking_delay=4
|
||||
label='Agenda Virtual', kind='virtual', minimal_booking_delay=1, maximal_booking_delay=4
|
||||
)
|
||||
VirtualMember.objects.create(virtual_agenda=virtual_agenda, real_agenda=agenda_foo)
|
||||
VirtualMember.objects.create(virtual_agenda=virtual_agenda, real_agenda=agenda_bar)
|
||||
|
@ -1884,7 +1882,7 @@ def test_datetimes_maximal_booking_delay(app, user, freezer, test_datetime):
|
|||
|
||||
def test_meetings_and_virtual_datetimes_date_filter(app):
|
||||
agenda_foo = Agenda.objects.create(
|
||||
label=u'Agenda Foo', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=7
|
||||
label='Agenda Foo', kind='meetings', minimal_booking_delay=1, maximal_booking_delay=7
|
||||
)
|
||||
meeting_type = MeetingType.objects.create(agenda=agenda_foo, label='Meeting Type', duration=30)
|
||||
desk_foo = Desk.objects.create(agenda=agenda_foo, label='Desk 1')
|
||||
|
@ -1903,7 +1901,7 @@ def test_meetings_and_virtual_datetimes_date_filter(app):
|
|||
)
|
||||
|
||||
virtual_agenda = Agenda.objects.create(
|
||||
label=u'Agenda Virtual', kind='virtual', minimal_booking_delay=1, maximal_booking_delay=7
|
||||
label='Agenda Virtual', kind='virtual', minimal_booking_delay=1, maximal_booking_delay=7
|
||||
)
|
||||
VirtualMember.objects.create(virtual_agenda=virtual_agenda, real_agenda=agenda_foo)
|
||||
|
||||
|
@ -2034,9 +2032,7 @@ def test_meetings_and_virtual_datetimes_date_filter(app):
|
|||
def test_datetimes_api_meetings_agenda_meta(app, freezer):
|
||||
# 2017-05-20 -> saturday
|
||||
freezer.move_to(make_aware(datetime.datetime(year=2017, month=5, day=20, hour=1, minute=12)))
|
||||
meetings_agenda = Agenda.objects.create(
|
||||
label=u'Foo bar Meeting', kind='meetings', maximal_booking_delay=3
|
||||
)
|
||||
meetings_agenda = Agenda.objects.create(label='Foo bar Meeting', kind='meetings', maximal_booking_delay=3)
|
||||
meeting_type = MeetingType(agenda=meetings_agenda, label='Blah', duration=30)
|
||||
meeting_type.save()
|
||||
|
||||
|
@ -2124,9 +2120,9 @@ def test_datetimes_api_meetings_agenda_meta(app, freezer):
|
|||
def test_datetimes_api_virtual_meetings_agenda_meta(app, freezer):
|
||||
# 2017-05-20 -> saturday
|
||||
freezer.move_to(make_aware(datetime.datetime(year=2017, month=5, day=20, hour=1, minute=12)))
|
||||
meetings_agenda1 = Agenda.objects.create(label=u'Foo Meeting', kind='meetings', maximal_booking_delay=3)
|
||||
meetings_agenda2 = Agenda.objects.create(label=u'Bar Meeting', kind='meetings', maximal_booking_delay=3)
|
||||
virtual_agenda = Agenda.objects.create(label=u'Agenda Virtual', kind='virtual', maximal_booking_delay=3)
|
||||
meetings_agenda1 = Agenda.objects.create(label='Foo Meeting', kind='meetings', maximal_booking_delay=3)
|
||||
meetings_agenda2 = Agenda.objects.create(label='Bar Meeting', kind='meetings', maximal_booking_delay=3)
|
||||
virtual_agenda = Agenda.objects.create(label='Agenda Virtual', kind='virtual', maximal_booking_delay=3)
|
||||
VirtualMember.objects.create(virtual_agenda=virtual_agenda, real_agenda=meetings_agenda1)
|
||||
VirtualMember.objects.create(virtual_agenda=virtual_agenda, real_agenda=meetings_agenda2)
|
||||
desk1 = Desk.objects.create(agenda=meetings_agenda1, label='Desk 1')
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import pytest
|
||||
from django.utils.timezone import now
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ def api_user():
|
|||
user = User.objects.get(username='api-user')
|
||||
except User.DoesNotExist:
|
||||
user = User.objects.create(
|
||||
username='john.doe', first_name=u'John', last_name=u'Doe', email='john.doe@example.net'
|
||||
username='john.doe', first_name='John', last_name='Doe', email='john.doe@example.net'
|
||||
)
|
||||
user.set_password('password')
|
||||
user.save()
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import copy
|
||||
import json
|
||||
|
||||
|
@ -15,7 +13,7 @@ pytestmark = pytest.mark.django_db
|
|||
|
||||
@pytest.fixture
|
||||
def agenda_with_restrictions(manager_user):
|
||||
agenda = Agenda(label=u'Foo Bar')
|
||||
agenda = Agenda(label='Foo Bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
return agenda
|
||||
|
@ -238,7 +236,7 @@ def test_delete_reason_as_manager(app, manager_user, agenda_with_restrictions):
|
|||
|
||||
|
||||
def test_meetings_agenda_group(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
AbsenceReasonGroup.objects.create(label='Foo bar')
|
||||
|
||||
app = login(app)
|
||||
|
@ -250,7 +248,7 @@ def test_meetings_agenda_group(app, admin_user):
|
|||
|
||||
|
||||
def test_agenda_group(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='events')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='events')
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
||||
app = login(app)
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import copy
|
||||
import datetime
|
||||
import json
|
||||
import os
|
||||
from unittest import mock
|
||||
|
||||
import freezegun
|
||||
import mock
|
||||
import pytest
|
||||
import requests
|
||||
from django.contrib.auth.models import Group
|
||||
|
@ -68,7 +66,7 @@ def test_manager_user_access(app, manager_user):
|
|||
app = login(app, username='manager', password='manager')
|
||||
assert app.get('/manage/', status=403)
|
||||
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
assert app.get('/manage/', status=403)
|
||||
|
||||
|
@ -112,7 +110,7 @@ def test_menu_json(app, admin_user):
|
|||
|
||||
|
||||
def test_events_agenda_redirect(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo Bar', kind='events')
|
||||
agenda = Agenda.objects.create(label='Foo Bar', kind='events')
|
||||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/' % agenda.pk, status=302)
|
||||
|
@ -131,7 +129,7 @@ def test_events_agenda_redirect(app, admin_user):
|
|||
|
||||
@freezegun.freeze_time('2020-07-12')
|
||||
def test_events_agenda_month_redirect(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo Bar', kind='events')
|
||||
agenda = Agenda.objects.create(label='Foo Bar', kind='events')
|
||||
|
||||
app = login(app)
|
||||
# no event, redirect to current month
|
||||
|
@ -183,7 +181,7 @@ def test_events_agenda_month_redirect(app, admin_user):
|
|||
|
||||
@freezegun.freeze_time('2020-07-12')
|
||||
def test_events_agenda_day_redirect(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo Bar', kind='events')
|
||||
agenda = Agenda.objects.create(label='Foo Bar', kind='events')
|
||||
|
||||
app = login(app)
|
||||
# no event, redirect to current day
|
||||
|
@ -234,7 +232,7 @@ def test_events_agenda_day_redirect(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_redirect(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo Bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo Bar', kind='meetings')
|
||||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/' % agenda.pk, status=302)
|
||||
|
@ -247,7 +245,7 @@ def test_meetings_agenda_redirect(app, admin_user):
|
|||
|
||||
|
||||
def test_virtual_agenda_redirect(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo Bar', kind='virtual')
|
||||
agenda = Agenda.objects.create(label='Foo Bar', kind='virtual')
|
||||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/' % agenda.pk, status=302)
|
||||
|
@ -260,7 +258,7 @@ def test_virtual_agenda_redirect(app, admin_user):
|
|||
|
||||
|
||||
def test_view_agendas_as_admin(app, admin_user):
|
||||
Agenda.objects.create(label=u'Bar Foo')
|
||||
Agenda.objects.create(label='Bar Foo')
|
||||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/', status=200)
|
||||
|
@ -268,11 +266,11 @@ def test_view_agendas_as_admin(app, admin_user):
|
|||
|
||||
|
||||
def test_view_agendas_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo Bar')
|
||||
agenda = Agenda(label='Foo Bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
|
||||
agenda2 = Agenda(label=u'Bar Foo')
|
||||
agenda2 = Agenda(label='Bar Foo')
|
||||
agenda2.save()
|
||||
|
||||
app = login(app, username='manager', password='manager')
|
||||
|
@ -406,10 +404,10 @@ def test_add_agenda_and_set_role(app, admin_user, manager_user):
|
|||
|
||||
|
||||
def test_options_agenda(app, admin_user):
|
||||
agenda_events = Agenda.objects.create(label=u'Foo bar', kind='events')
|
||||
agenda_events = Agenda.objects.create(label='Foo bar', kind='events')
|
||||
Desk.objects.create(agenda=agenda_events, slug='_exceptions_holder')
|
||||
agenda_meetings = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
Agenda.objects.create(label=u'Foo bar', kind='virtual')
|
||||
agenda_meetings = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
Agenda.objects.create(label='Foo bar', kind='virtual')
|
||||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/edit' % agenda_events.pk)
|
||||
|
@ -451,7 +449,7 @@ def test_options_agenda(app, admin_user):
|
|||
|
||||
def test_options_events_agenda_delays(settings, app, admin_user):
|
||||
settings.WORKING_DAY_CALENDAR = None
|
||||
agenda = Agenda.objects.create(label=u'Foo bar')
|
||||
agenda = Agenda.objects.create(label='Foo bar')
|
||||
assert agenda.minimal_booking_delay == 1
|
||||
app = login(app)
|
||||
url = '/manage/agendas/%s/booking-delays' % agenda.pk
|
||||
|
@ -471,7 +469,7 @@ def test_options_events_agenda_delays(settings, app, admin_user):
|
|||
|
||||
|
||||
def test_options_meetings_agenda_delays(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings', maximal_booking_delay=2)
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings', maximal_booking_delay=2)
|
||||
assert agenda.maximal_booking_delay == 2
|
||||
app = login(app)
|
||||
url = '/manage/agendas/%s/booking-delays' % agenda.pk
|
||||
|
@ -484,7 +482,7 @@ def test_options_meetings_agenda_delays(app, admin_user):
|
|||
|
||||
|
||||
def test_options_virtual_agenda_delays(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='virtual', maximal_booking_delay=2)
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='virtual', maximal_booking_delay=2)
|
||||
assert agenda.maximal_booking_delay == 2
|
||||
app = login(app)
|
||||
url = '/manage/agendas/%s/booking-delays' % agenda.pk
|
||||
|
@ -586,7 +584,7 @@ def test_options_agenda_event_display_template(app, admin_user):
|
|||
|
||||
|
||||
def test_options_agenda_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
@ -696,7 +694,7 @@ def test_options_meetings_agenda_num_queries(app, admin_user, managers_group):
|
|||
|
||||
@mock.patch('chrono.agendas.models.Agenda.is_available_for_simple_management')
|
||||
def test_agenda_options_desk_simple_management(available_mock, app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
app = login(app)
|
||||
|
||||
available_mock.return_value = True
|
||||
|
@ -752,7 +750,7 @@ def test_agenda_options_desk_simple_management(available_mock, app, admin_user):
|
|||
|
||||
|
||||
def test_delete_agenda(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
app = login(app)
|
||||
|
@ -766,7 +764,7 @@ def test_delete_agenda(app, admin_user):
|
|||
|
||||
|
||||
def test_delete_busy_agenda(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
event = Event(start_datetime=now() + datetime.timedelta(days=10), places=10, agenda=agenda)
|
||||
|
@ -797,7 +795,7 @@ def test_delete_busy_agenda(app, admin_user):
|
|||
|
||||
|
||||
def test_delete_agenda_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.edit_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
@ -809,7 +807,7 @@ def test_delete_agenda_as_manager(app, manager_user):
|
|||
|
||||
|
||||
def test_delete_busy_desk(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda(label='Foo bar', kind='meetings')
|
||||
agenda.save()
|
||||
desk_a = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
Desk.objects.create(agenda=agenda, label='Desk B')
|
||||
|
@ -854,7 +852,7 @@ def test_add_meetings_agenda(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_add_meeting_type(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/settings' % agenda.pk)
|
||||
assert "This agenda doesn't have any meeting type yet." in resp.text
|
||||
|
@ -878,10 +876,10 @@ def test_meetings_agenda_add_meeting_type(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_edit_meeting_type(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
meeting_type = MeetingType.objects.create(agenda=agenda, label='Blah')
|
||||
meeting_type2 = MeetingType.objects.create(agenda=agenda, label='Other')
|
||||
other_agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
other_agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
other_meeting_type = MeetingType.objects.create(agenda=other_agenda, label='Blah')
|
||||
assert meeting_type.slug == other_meeting_type.slug
|
||||
|
||||
|
@ -905,7 +903,7 @@ def test_meetings_agenda_edit_meeting_type(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_delete_meeting_type(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda(label='Foo bar', kind='meetings')
|
||||
agenda.save()
|
||||
|
||||
meeting_type = MeetingType(agenda=agenda, label='Blah')
|
||||
|
@ -933,7 +931,7 @@ def test_meetings_agenda_delete_meeting_type(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_add_time_period(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
desk2 = Desk.objects.create(agenda=agenda, label='Desk B')
|
||||
MeetingType.objects.create(agenda=agenda, label='Blah')
|
||||
|
@ -959,8 +957,8 @@ def test_meetings_agenda_add_time_period(app, admin_user):
|
|||
resp.form['end_time'] = '13:00'
|
||||
resp = resp.form.submit()
|
||||
resp = resp.follow()
|
||||
assert u'Monday / 10 a.m. → 1 p.m.' in resp.text
|
||||
assert u'Wednesday / 10 a.m. → 5 p.m.' in resp.text
|
||||
assert 'Monday / 10 a.m. → 1 p.m.' in resp.text
|
||||
assert 'Wednesday / 10 a.m. → 5 p.m.' in resp.text
|
||||
assert resp.text.index('Monday') < resp.text.index('Wednesday')
|
||||
|
||||
# invert start and end
|
||||
|
@ -982,7 +980,7 @@ def test_meetings_agenda_add_time_period(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_add_time_period_desk_simple_management(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings', desk_simple_management=True)
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings', desk_simple_management=True)
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
desk2 = Desk.objects.create(agenda=agenda, label='Desk B')
|
||||
assert agenda.is_available_for_simple_management() is True
|
||||
|
@ -1001,7 +999,7 @@ def test_meetings_agenda_add_time_period_desk_simple_management(app, admin_user)
|
|||
|
||||
def test_meetings_agenda_add_time_period_on_missing_desk(app, admin_user):
|
||||
app = login(app)
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
app.get('/manage/agendas/%s/desk/0/add-time-period' % agenda.pk, status=404)
|
||||
|
||||
|
||||
|
@ -1037,7 +1035,7 @@ def test_meetings_agenda_add_time_period_as_manager(app, manager_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_edit_time_period(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
time_period = TimePeriod.objects.create(
|
||||
desk=desk, weekday=0, start_time=datetime.time(9, 0), end_time=datetime.time(12, 0)
|
||||
|
@ -1066,7 +1064,7 @@ def test_meetings_agenda_edit_time_period(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_edit_time_period_desk_simple_management(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings', desk_simple_management=True)
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings', desk_simple_management=True)
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
time_period = TimePeriod.objects.create(
|
||||
desk=desk, weekday=0, start_time=datetime.time(9, 0), end_time=datetime.time(12, 0)
|
||||
|
@ -1106,7 +1104,7 @@ def test_meetings_agenda_edit_time_period_desk_simple_management(app, admin_user
|
|||
|
||||
|
||||
def test_meetings_agenda_delete_time_period(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
TimePeriod.objects.create(
|
||||
desk=desk, weekday=2, start_time=datetime.time(10, 0), end_time=datetime.time(18, 0)
|
||||
|
@ -1124,7 +1122,7 @@ def test_meetings_agenda_delete_time_period(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_delete_time_period_desk_simple_management(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings', desk_simple_management=True)
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings', desk_simple_management=True)
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
time_period = TimePeriod.objects.create(
|
||||
desk=desk, weekday=0, start_time=datetime.time(9, 0), end_time=datetime.time(12, 0)
|
||||
|
@ -1197,7 +1195,7 @@ def test_meetings_agenda_add_desk(app, admin_user):
|
|||
}
|
||||
)
|
||||
def test_meetings_agenda_add_desk_from_another(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
TimePeriod.objects.create(
|
||||
weekday=1, desk=desk, start_time=datetime.time(10, 0), end_time=datetime.time(12, 0)
|
||||
|
@ -1226,7 +1224,7 @@ def test_meetings_agenda_add_desk_from_another(app, admin_user):
|
|||
}
|
||||
)
|
||||
def test_meetings_agenda_add_desk_simple_management(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings', desk_simple_management=True)
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings', desk_simple_management=True)
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
TimePeriod.objects.create(
|
||||
weekday=1, desk=desk, start_time=datetime.time(10, 0), end_time=datetime.time(12, 0)
|
||||
|
@ -1259,10 +1257,10 @@ def test_meetings_agenda_add_desk_simple_management(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_edit_desk(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
desk2 = Desk.objects.create(agenda=agenda, label='Desk B')
|
||||
other_agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
other_agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
other_desk = Desk.objects.create(agenda=other_agenda, label='Desk A')
|
||||
assert other_desk.slug == desk.slug
|
||||
|
||||
|
@ -1297,7 +1295,7 @@ def test_meetings_agenda_edit_desk(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_delete_desk(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
desk_b = Desk.objects.create(agenda=agenda, label='Desk B')
|
||||
|
||||
|
@ -1328,7 +1326,7 @@ def test_meetings_agenda_delete_desk(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_add_time_period_exception(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
desk2 = Desk.objects.create(agenda=agenda, label='Desk B')
|
||||
|
||||
|
@ -1371,7 +1369,7 @@ def test_meetings_agenda_add_time_period_exception(app, admin_user):
|
|||
|
||||
|
||||
def test_meetings_agenda_add_time_period_exception_booking_overlaps(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
meeting_type = MeetingType.objects.create(agenda=agenda, label='Blah')
|
||||
|
||||
|
@ -1399,7 +1397,7 @@ def test_meetings_agenda_add_time_period_exception_booking_overlaps(app, admin_u
|
|||
|
||||
|
||||
def test_meetings_agenda_add_time_period_exception_all_desks(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
desk = Desk.objects.create(agenda=agenda, label='Desk A')
|
||||
|
||||
# add global time exception
|
||||
|
@ -3303,7 +3301,7 @@ def test_agenda_month_view_event_outside_timeperiod(app, admin_user, kind):
|
|||
|
||||
|
||||
def test_agenda_view_event(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
event = Event.objects.create(
|
||||
|
@ -3411,7 +3409,7 @@ def test_import_agenda_as_manager(app, manager_user):
|
|||
|
||||
|
||||
def test_import_agenda(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
||||
|
@ -3479,14 +3477,14 @@ def test_import_agenda(app, admin_user):
|
|||
|
||||
# reference to unknown group
|
||||
agenda_export_dict = json.loads(force_text(agenda_export))
|
||||
agenda_export_dict['agendas'][0]['permissions']['view'] = u'gé1'
|
||||
agenda_export_dict['agendas'][0]['permissions']['view'] = 'gé1'
|
||||
agenda_export = json.dumps(agenda_export_dict).encode('utf-8')
|
||||
Agenda.objects.all().delete()
|
||||
resp = app.get('/manage/', status=200)
|
||||
resp = resp.click('Import')
|
||||
resp.form['agendas_json'] = Upload('export.json', agenda_export, 'application/json')
|
||||
resp = resp.form.submit()
|
||||
assert u'Missing roles: "gé1"' in resp.text
|
||||
assert 'Missing roles: "gé1"' in resp.text
|
||||
del agenda_export_dict['agendas'][0]['permissions']['view']
|
||||
|
||||
# missing field
|
||||
|
@ -3832,7 +3830,7 @@ def test_virtual_agenda_settings_add_excluded_period(app, admin_user):
|
|||
assert tp.end_time.minute == 0
|
||||
|
||||
resp = resp.follow()
|
||||
assert u'Monday / 10 a.m. → 5 p.m.' in resp.text
|
||||
assert 'Monday / 10 a.m. → 5 p.m.' in resp.text
|
||||
|
||||
|
||||
def test_virtual_agenda_settings_edit_excluded_period(app, admin_user):
|
||||
|
@ -4033,7 +4031,7 @@ def test_cant_add_meetingtype_if_virtual_agenda(app, admin_user):
|
|||
|
||||
|
||||
def test_duplicate_agenda(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo Bar', slug='foo-bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo Bar', slug='foo-bar', kind='meetings')
|
||||
assert Agenda.objects.count() == 1
|
||||
|
||||
app = login(app)
|
||||
|
@ -4338,7 +4336,7 @@ def test_export_site(app, admin_user):
|
|||
site_json = json.loads(resp.text)
|
||||
assert site_json == {'unavailability_calendars': [], 'agendas': [], 'absence_reason_groups': []}
|
||||
|
||||
agenda = Agenda.objects.create(label=u'Foo Bar', kind='events')
|
||||
agenda = Agenda.objects.create(label='Foo Bar', kind='events')
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
UnavailabilityCalendar.objects.create(label='Calendar 1')
|
||||
resp = app.get('/manage/agendas/export/')
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import pytest
|
||||
|
||||
from chrono.agendas.models import Agenda, Category
|
||||
|
@ -10,7 +8,7 @@ pytestmark = pytest.mark.django_db
|
|||
|
||||
|
||||
def test_list_categories_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo Bar')
|
||||
agenda = Agenda(label='Foo Bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
app = login(app, username='manager', password='manager')
|
||||
|
@ -34,7 +32,7 @@ def test_add_category(app, admin_user):
|
|||
|
||||
|
||||
def test_add_category_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo Bar')
|
||||
agenda = Agenda(label='Foo Bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
app = login(app, username='manager', password='manager')
|
||||
|
@ -57,7 +55,7 @@ def test_edit_category(app, admin_user):
|
|||
|
||||
|
||||
def test_edit_category_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo Bar')
|
||||
agenda = Agenda(label='Foo Bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
category = Category.objects.create(label='Foo bar')
|
||||
|
@ -77,7 +75,7 @@ def test_delete_category(app, admin_user):
|
|||
|
||||
|
||||
def test_delete_category_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo Bar')
|
||||
agenda = Agenda(label='Foo Bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
category = Category.objects.create(label='Foo bar')
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import codecs
|
||||
import datetime
|
||||
from unittest import mock
|
||||
|
||||
import mock
|
||||
import pytest
|
||||
import requests
|
||||
from django.core.management import call_command
|
||||
|
@ -20,7 +18,7 @@ pytestmark = pytest.mark.django_db
|
|||
|
||||
|
||||
def test_add_event(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.maximal_booking_delay = 0
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
@ -71,7 +69,7 @@ def test_add_event_on_missing_agenda(app, admin_user):
|
|||
|
||||
|
||||
def test_add_event_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
@ -111,7 +109,7 @@ def test_add_event_as_manager(app, manager_user):
|
|||
|
||||
def test_edit_event(settings, app, admin_user):
|
||||
settings.LANGUAGE_CODE = 'fr-fr' # check date initial value format
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
event = Event(start_datetime=make_aware(datetime.datetime(2016, 2, 15, 17, 0)), places=20, agenda=agenda)
|
||||
event.save()
|
||||
|
@ -144,7 +142,7 @@ def test_edit_event(settings, app, admin_user):
|
|||
|
||||
|
||||
def test_event_digit_slug(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.maximal_booking_delay = 0
|
||||
agenda.save()
|
||||
event = Event.objects.create(agenda=agenda, start_datetime=now(), places=10)
|
||||
|
@ -162,7 +160,7 @@ def test_edit_missing_event(app, admin_user):
|
|||
|
||||
|
||||
def test_edit_event_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.view_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
@ -340,7 +338,7 @@ def test_edit_recurring_event_with_end_date(settings, app, admin_user, freezer):
|
|||
|
||||
|
||||
def test_booked_places(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
event = Event(start_datetime=make_aware(datetime.datetime(2016, 2, 15, 17, 0)), places=10, agenda=agenda)
|
||||
event.save()
|
||||
|
@ -355,7 +353,7 @@ def test_booked_places(app, admin_user):
|
|||
|
||||
|
||||
def test_event_classes(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
event = Event(start_datetime=make_aware(datetime.datetime(2016, 2, 15, 17, 0)), places=10, agenda=agenda)
|
||||
|
@ -390,7 +388,7 @@ def test_event_classes(app, admin_user):
|
|||
|
||||
|
||||
def test_delete_event(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
event = Event(start_datetime=make_aware(datetime.datetime(2016, 2, 15, 17, 0)), places=10, agenda=agenda)
|
||||
|
@ -406,7 +404,7 @@ def test_delete_event(app, admin_user):
|
|||
|
||||
|
||||
def test_delete_busy_event(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
event = Event(start_datetime=now() + datetime.timedelta(days=10), places=10, agenda=agenda)
|
||||
|
@ -477,7 +475,7 @@ def test_delete_recurring_event(app, admin_user, freezer):
|
|||
|
||||
|
||||
def test_delete_event_as_manager(app, manager_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.edit_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
@ -494,7 +492,7 @@ def test_delete_event_as_manager(app, manager_user):
|
|||
|
||||
|
||||
def test_export_events(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar')
|
||||
agenda = Agenda.objects.create(label='Foo bar')
|
||||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/export-events' % agenda.id)
|
||||
|
@ -534,7 +532,7 @@ def test_export_events(app, admin_user):
|
|||
|
||||
|
||||
def test_export_events_wrong_kind(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
|
||||
app = login(app)
|
||||
app.get('/manage/agendas/%s/export-events' % agenda.id, status=404)
|
||||
|
@ -544,7 +542,7 @@ def test_export_events_wrong_kind(app, admin_user):
|
|||
|
||||
|
||||
def test_import_events(app, admin_user):
|
||||
agenda = Agenda(label=u'Foo bar')
|
||||
agenda = Agenda(label='Foo bar')
|
||||
agenda.save()
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
||||
|
@ -607,52 +605,50 @@ def test_import_events(app, admin_user):
|
|||
Event.objects.all().delete()
|
||||
|
||||
resp = app.get('/manage/agendas/%s/import-events' % agenda.id, status=200)
|
||||
resp.form['events_csv_file'] = Upload(
|
||||
't.csv', u'2016-09-16,18:00,10,5,éléphant'.encode('utf-8'), 'text/csv'
|
||||
)
|
||||
resp.form['events_csv_file'] = Upload('t.csv', '2016-09-16,18:00,10,5,éléphant'.encode(), 'text/csv')
|
||||
resp = resp.form.submit(status=302)
|
||||
assert Event.objects.count() == 1
|
||||
assert Event.objects.all()[0].start_datetime == make_aware(datetime.datetime(2016, 9, 16, 18, 0))
|
||||
assert Event.objects.all()[0].places == 10
|
||||
assert Event.objects.all()[0].waiting_list_places == 5
|
||||
assert Event.objects.all()[0].label == u'éléphant'
|
||||
assert Event.objects.all()[0].label == 'éléphant'
|
||||
Event.objects.all().delete()
|
||||
|
||||
# BOM
|
||||
resp = app.get('/manage/agendas/%s/import-events' % agenda.id, status=200)
|
||||
resp.form['events_csv_file'] = Upload(
|
||||
't.csv', codecs.BOM_UTF8 + u'2016-09-16,18:00,10,5,éléphant'.encode('utf-8'), 'text/csv'
|
||||
't.csv', codecs.BOM_UTF8 + '2016-09-16,18:00,10,5,éléphant'.encode(), 'text/csv'
|
||||
)
|
||||
resp = resp.form.submit(status=302)
|
||||
assert Event.objects.count() == 1
|
||||
assert Event.objects.all()[0].start_datetime == make_aware(datetime.datetime(2016, 9, 16, 18, 0))
|
||||
assert Event.objects.all()[0].places == 10
|
||||
assert Event.objects.all()[0].waiting_list_places == 5
|
||||
assert Event.objects.all()[0].label == u'éléphant'
|
||||
assert Event.objects.all()[0].label == 'éléphant'
|
||||
Event.objects.all().delete()
|
||||
|
||||
resp = app.get('/manage/agendas/%s/import-events' % agenda.id, status=200)
|
||||
resp.form['events_csv_file'] = Upload(
|
||||
't.csv', u'2016-09-16,18:00,10,5,éléphant'.encode('iso-8859-15'), 'text/csv'
|
||||
't.csv', '2016-09-16,18:00,10,5,éléphant'.encode('iso-8859-15'), 'text/csv'
|
||||
)
|
||||
resp = resp.form.submit(status=302)
|
||||
assert Event.objects.count() == 1
|
||||
assert Event.objects.all()[0].start_datetime == make_aware(datetime.datetime(2016, 9, 16, 18, 0))
|
||||
assert Event.objects.all()[0].places == 10
|
||||
assert Event.objects.all()[0].waiting_list_places == 5
|
||||
assert Event.objects.all()[0].label == u'éléphant'
|
||||
assert Event.objects.all()[0].label == 'éléphant'
|
||||
Event.objects.all().delete()
|
||||
|
||||
resp = app.get('/manage/agendas/%s/import-events' % agenda.id, status=200)
|
||||
resp.form['events_csv_file'] = Upload(
|
||||
't.csv', u'2016-09-16,18:00,10,5,éléphant'.encode('eucjp'), 'text/csv'
|
||||
't.csv', '2016-09-16,18:00,10,5,éléphant'.encode('eucjp'), 'text/csv'
|
||||
)
|
||||
resp = resp.form.submit(status=302)
|
||||
assert Event.objects.count() == 1
|
||||
assert Event.objects.all()[0].start_datetime == make_aware(datetime.datetime(2016, 9, 16, 18, 0))
|
||||
assert Event.objects.all()[0].places == 10
|
||||
assert Event.objects.all()[0].waiting_list_places == 5
|
||||
assert Event.objects.all()[0].label == u'\x8f«±l\x8f«±phant' # eucjp interpreted as iso-8859-15
|
||||
assert Event.objects.all()[0].label == '\x8f«±l\x8f«±phant' # eucjp interpreted as iso-8859-15
|
||||
Event.objects.all().delete()
|
||||
|
||||
resp = app.get('/manage/agendas/%s/import-events' % agenda.id, status=200)
|
||||
|
@ -754,9 +750,13 @@ def test_import_events(app, admin_user):
|
|||
resp = resp.form.submit(status=302)
|
||||
assert len(ctx.captured_queries) == 22
|
||||
assert Event.objects.count() == 5
|
||||
assert set(Event.objects.values_list('slug', flat=True)) == set(
|
||||
['labelb', 'labelb-1', 'labelb-2', 'labelb-3', 'labelb-4']
|
||||
)
|
||||
assert set(Event.objects.values_list('slug', flat=True)) == {
|
||||
'labelb',
|
||||
'labelb-1',
|
||||
'labelb-2',
|
||||
'labelb-3',
|
||||
'labelb-4',
|
||||
}
|
||||
|
||||
# forbidden numerical slug
|
||||
Event.objects.all().delete()
|
||||
|
@ -768,7 +768,7 @@ def test_import_events(app, admin_user):
|
|||
|
||||
|
||||
def test_import_events_existing_event(app, admin_user, freezer):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar')
|
||||
agenda = Agenda.objects.create(label='Foo bar')
|
||||
Desk.objects.create(agenda=agenda, slug='_exceptions_holder')
|
||||
|
||||
app = login(app)
|
||||
|
@ -803,7 +803,7 @@ def test_import_events_existing_event(app, admin_user, freezer):
|
|||
not in resp.text
|
||||
)
|
||||
assert event.start_datetime == make_aware(
|
||||
datetime.datetime(*[int(v) for v in date.split('-')], *[int(v) for v in time.split(':')])
|
||||
datetime.datetime(*(int(v) for v in date.split('-')), *(int(v) for v in time.split(':')))
|
||||
)
|
||||
|
||||
# change date or time
|
||||
|
@ -867,7 +867,7 @@ def test_import_events_existing_event(app, admin_user, freezer):
|
|||
|
||||
|
||||
def test_import_events_wrong_kind(app, admin_user):
|
||||
agenda = Agenda.objects.create(label=u'Foo bar', kind='meetings')
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
|
||||
|
||||
app = login(app)
|
||||
app.get('/manage/agendas/%s/import-events' % agenda.id, status=404)
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue