Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/respa-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ jobs:
DATABASE_URL: postgis://postgres:postgres@localhost/respa
steps:
- uses: actions/checkout@v3
- name: Set up python 3.8
- name: Set up python 3.10
uses: actions/setup-python@v2
with:
python-version: "3.8"
python-version: "3.10"
- name: Install Ubuntu packages
run: |
sudo apt-get update && sudo apt-get install -y gdal-bin gettext libxml2-dev libxslt-dev python3-dev python3-lxml
Expand Down Expand Up @@ -43,7 +43,7 @@ jobs:

services:
postres:
image: postgis/postgis:10-2.5
image: postgis/postgis:14-3.5
env:
# It lets postgres user login without password so postgres extensions can be
# installed
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# ======================================================================
FROM python:3.8-buster AS app-base
FROM python:3.10-buster AS app-base
# ======================================================================
WORKDIR /app

Expand All @@ -14,14 +14,14 @@ RUN set -eux; \
postgresql-client \
gettext \
; \
curl -sL https://deb.nodesource.com/setup_12.x | bash -; \
curl -sL https://deb.nodesource.com/setup_20.x | bash -; \
apt-get install -y nodejs; \
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm -rf /var/lib/apt/lists/*; \
rm -rf /var/cache/apt/archives; \
pip install --no-cache-dir -r requirements.txt

# Install wait-for-it.sh
# Install wait-for-it.sh
RUN curl -o /usr/local/bin/wait-for-it.sh https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh && \
chmod +x /usr/local/bin/wait-for-it.sh

Expand Down
2 changes: 1 addition & 1 deletion caterings/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.contrib.gis.db import models
from django.contrib.gis.db.models import Q
from django.utils import formats, translation
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from django.utils.translation import pgettext_lazy

import reversion
Expand Down
2 changes: 1 addition & 1 deletion comments/api.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from datetime import datetime
from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from django.utils import timezone
import django_filters
from rest_framework import exceptions, mixins, serializers, viewsets
Expand Down
21 changes: 21 additions & 0 deletions comments/migrations/0004_alter_comment_created_by.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 4.0.10 on 2025-02-17 08:16

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('comments', '0003_refactor_content_type_choices'),
]

operations = [
migrations.AlterField(
model_name='comment',
name='created_by',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='%(class)s_created', to=settings.AUTH_USER_MODEL, verbose_name='Created by'),
),
]
2 changes: 1 addition & 1 deletion comments/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.contrib.contenttypes.models import ContentType
from django.contrib.gis.db import models
from django.contrib.gis.db.models import Q
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from caterings.models import CateringOrder
from resources.models import Reservation, Resource
from resources.models.utils import send_respa_mail
Expand Down
2 changes: 1 addition & 1 deletion deploy/containerize.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ if [ -z "$DOCKER_PASSWORD" ]; then
exit 0
fi

if [ "$TRAVIS_PYTHON_VERSION" != "3.6" ]; then
if [ "$TRAVIS_PYTHON_VERSION" != "3.10" ]; then
echo "Only deploy on production Python build"
exit 0
fi
Expand Down
1 change: 0 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
version: '3'
services:
db:
container_name: respa-db
Expand Down
43 changes: 43 additions & 0 deletions kulkunen/migrations/0004_auto_20250214_1032.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Generated by Django 3.2.25 on 2025-02-14 08:32

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('kulkunen', '0003_auto_20231003_1526'),
]

operations = [
migrations.AlterField(
model_name='accesscontrolgrant',
name='driver_data',
field=models.JSONField(blank=True, null=True),
),
migrations.AlterField(
model_name='accesscontrolresource',
name='driver_config',
field=models.JSONField(blank=True, help_text='Driver-specific configuration', null=True),
),
migrations.AlterField(
model_name='accesscontrolresource',
name='driver_data',
field=models.JSONField(editable=False, help_text='Internal driver data', null=True),
),
migrations.AlterField(
model_name='accesscontrolsystem',
name='driver_config',
field=models.JSONField(blank=True, help_text='Driver-specific configuration', null=True),
),
migrations.AlterField(
model_name='accesscontrolsystem',
name='driver_data',
field=models.JSONField(editable=False, help_text='Internal driver data', null=True),
),
migrations.AlterField(
model_name='accesscontroluser',
name='driver_data',
field=models.JSONField(blank=True, null=True),
),
]
15 changes: 7 additions & 8 deletions kulkunen/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@
import random
from datetime import timedelta
from django.contrib.auth import get_user_model
from django.contrib.postgres.fields import JSONField
from django.core.exceptions import ImproperlyConfigured
from django.db import models, transaction
from django.utils import timezone
from django.utils.module_loading import import_string
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _

from resources.models import Resource

Expand Down Expand Up @@ -75,7 +74,7 @@ class AccessControlUser(models.Model):
help_text=_("Identifier of user in the access control system (if any)"),
)

driver_data = JSONField(null=True, blank=True)
driver_data = models.JSONField(null=True, blank=True)

objects = AccessControlUserQuerySet.as_manager()

Expand Down Expand Up @@ -176,7 +175,7 @@ class AccessControlGrant(models.Model):
),
)

driver_data = JSONField(null=True, blank=True)
driver_data = models.JSONField(null=True, blank=True)

objects = AccessControlGrantQuerySet.as_manager()

Expand Down Expand Up @@ -314,10 +313,10 @@ class AccessControlResource(models.Model):
help_text=_("Identifier of resource in the access control system (if any)"),
)

driver_config = JSONField(
driver_config = models.JSONField(
null=True, blank=True, help_text=_("Driver-specific configuration")
)
driver_data = JSONField(
driver_data = models.JSONField(
null=True, editable=False, help_text=_("Internal driver data")
)

Expand Down Expand Up @@ -414,10 +413,10 @@ class AccessControlSystem(models.Model):
),
)

driver_config = JSONField(
driver_config = models.JSONField(
null=True, blank=True, help_text=_("Driver-specific configuration")
)
driver_data = JSONField(
driver_data = models.JSONField(
null=True, editable=False, help_text=_("Internal driver data")
)

Expand Down
2 changes: 1 addition & 1 deletion notifications/apps.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from django.apps import AppConfig
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _


class NotificationsConfig(AppConfig):
Expand Down
20 changes: 20 additions & 0 deletions notifications/migrations/0014_auto_20250213_1356.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 3.0.14 on 2025-02-13 11:56

from django.db import migrations
import django.db.models.deletion
import parler.fields


class Migration(migrations.Migration):

dependencies = [
('notifications', '0013_create_reservation_reminder_notification'),
]

operations = [
migrations.AlterField(
model_name='notificationtemplatetranslation',
name='master',
field=parler.fields.TranslationsForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='notifications.NotificationTemplate'),
),
]
2 changes: 1 addition & 1 deletion notifications/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.utils import translation
from django.utils.formats import date_format
from django.utils.html import strip_tags
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from jinja2 import StrictUndefined
from jinja2.exceptions import TemplateError
from jinja2.sandbox import SandboxedEnvironment
Expand Down
2 changes: 1 addition & 1 deletion payments/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.core.exceptions import ValidationError
from django.utils.safestring import mark_safe
from django.utils.timezone import localtime
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from modeltranslation.admin import TranslationAdmin

from payments.utils import get_price_period_display
Expand Down
2 changes: 1 addition & 1 deletion payments/api/base.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from django.utils.duration import duration_string
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers

from resources.api.base import TranslatedModelSerializer
Expand Down
2 changes: 1 addition & 1 deletion payments/api/reservation.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from decimal import Decimal
from django.utils.duration import duration_string
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework import exceptions, serializers, status
from rest_framework.exceptions import PermissionDenied

Expand Down
2 changes: 1 addition & 1 deletion payments/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from django.utils import timezone, translation
from django.utils.formats import localize
from django.utils.functional import cached_property
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from rest_framework import serializers

from resources.models import Reservation, Resource
Expand Down
2 changes: 1 addition & 1 deletion payments/utils.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from datetime import timedelta
from decimal import ROUND_HALF_UP, Decimal
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from functools import wraps


Expand Down
2 changes: 1 addition & 1 deletion reports/api/daily_reservations.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import pytz
from docx.shared import Pt, Cm

from django.utils.translation import get_language, ugettext_lazy as _
from django.utils.translation import get_language, gettext_lazy as _
from django.utils import formats
from django.utils.timezone import localtime
from django.conf import settings
Expand Down
2 changes: 1 addition & 1 deletion reports/api/reservation_details.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import io

from django.utils.translation import get_language, pgettext_lazy, ugettext_lazy as _
from django.utils.translation import get_language, pgettext_lazy, gettext_lazy as _
from django.utils import formats
from django.utils.timezone import localtime
from rest_framework import exceptions, serializers
Expand Down
6 changes: 3 additions & 3 deletions reports/tests/test_daily_reservations.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ def reservation2(resource_in_unit2, user):


def check_valid_response(response):
headers = response._headers
assert headers['content-type'][1] == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
assert headers['content-disposition'][1].endswith('.docx')
headers = response.headers
assert headers['Content-Type'] == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
assert headers['Content-Disposition'].endswith('.docx')
assert len(response.content) > 0


Expand Down
6 changes: 3 additions & 3 deletions reports/tests/test_reservation_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ def reservation2(resource_in_unit2, user):


def check_valid_response(response):
headers = response._headers
assert headers['content-type'][1] == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
assert headers['content-disposition'][1].endswith('.docx')
headers = response.headers
assert headers['Content-Type'] == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
assert headers['Content-Disposition'].endswith('.docx')
assert len(response.content) > 0


Expand Down
14 changes: 6 additions & 8 deletions requirements.in
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Django
django-modeltranslation>=0.13-beta1
Django<5.0
django-modeltranslation==0.19.2
--no-binary psycopg2
psycopg2
psycopg2>=2.8,<2.9
django-munigeo
djangorestframework
djangorestframework==3.15.1
django-filter
django-grappelli
django-parler
Expand All @@ -14,13 +14,12 @@ flake8
arrow
pytz
coverage
django-ckeditor==5.9.0
django-cors-headers
django-image-cropping
easy_thumbnails
git+https://github.com/Tampere/django-tamusers.git@31b9251bcd9e769bd446528009377834cb68e760#egg=django-tamusers
git+https://github.com/Tampere/django-tamusers.git@9ed131f2997d6fb7fa42864024b302a49d8f4be4#egg=django-tamusers
django-allauth
djangorestframework-jwt
git+https://github.com/andersinno/django-rest-framework-jwt.git@667fb8cb2c4c485fa0673b28105663e545535628#egg=djangorestframework-jwt
django-storages[google]
pyjwt
django-hstore
Expand Down Expand Up @@ -52,5 +51,4 @@ django-admin-json-editor
factory_boy
isort
uWSGI
protobuf==3.19.6
paramiko==3.3.1
Loading