From 4f8fc0dce15a7156033f01ccee36af032f483214 Mon Sep 17 00:00:00 2001 From: emi-hi Date: Thu, 25 Apr 2024 09:44:03 -0700 Subject: [PATCH] chore: removes unused code relating to household/spouse --- django/api/constants.py | 6 +- django/api/hooks.py | 6 +- .../models/go_electric_rebate_application.py | 16 - django/api/serializers/application_form.py | 31 +- django/api/serializers/household_member.py | 134 ------ .../go_electric_rebate_application.py | 1 - .../services/tests/test_calculate_rebate.py | 15 - django/api/services/tests/test_rebate.py | 1 - django/api/signal_receivers.py | 43 -- django/api/signals.py | 5 - django/api/site.py | 14 - django/api/tasks.py | 104 ----- django/api/urls.py | 2 - django/api/utility.py | 32 -- django/api/viewsets/application_form.py | 26 -- django/api/viewsets/household_member.py | 33 -- docker-compose.yml | 4 - frontend/public/index.html | 2 +- frontend/src/components/ApplicationSummary.js | 58 +-- frontend/src/components/BCEIDLogin.js | 11 +- frontend/src/components/BottomBanner.js | 14 +- .../src/components/HouseholdLoginError.js | 39 -- frontend/src/components/InfoTable.js | 9 +- frontend/src/components/RebateTable.js | 134 ------ frontend/src/components/SpouseEmail.js | 49 --- frontend/src/components/SpouseForm.js | 383 ------------------ frontend/src/components/upload/Upload.js | 3 +- frontend/src/pages/Form.js | 1 - frontend/src/pages/HouseholdDetails.js | 22 - frontend/src/pages/HouseholdForm.js | 50 --- frontend/src/pages/HouseholdLogin.js | 60 --- frontend/src/routes/index.js | 20 - frontend/src/styles/Form.scss | 3 - frontend/src/styles/Login.scss | 69 ++-- tests/perf/script.js | 1 - utils/import_redeemed_rebates.py | 2 +- 36 files changed, 48 insertions(+), 1355 deletions(-) delete mode 100644 django/api/serializers/household_member.py delete mode 100644 django/api/signals.py delete mode 100644 django/api/viewsets/household_member.py delete mode 100644 frontend/src/components/HouseholdLoginError.js delete mode 100644 frontend/src/components/RebateTable.js delete mode 100644 frontend/src/components/SpouseEmail.js delete mode 100644 frontend/src/components/SpouseForm.js delete mode 100644 frontend/src/pages/HouseholdDetails.js delete mode 100644 frontend/src/pages/HouseholdForm.js delete mode 100644 frontend/src/pages/HouseholdLogin.js diff --git a/django/api/constants.py b/django/api/constants.py index ccc9ed7f..c07dddf4 100644 --- a/django/api/constants.py +++ b/django/api/constants.py @@ -1,7 +1,8 @@ from enum import Enum -# for each income tested maximum rebate ($4000, $2000, $1000), there are different rebate levels for certain ZEV types and lease terms +# for each income tested maximum rebate ($4000, $2000, $1000), there +# are different rebate levels for certain ZEV types and lease terms class FOUR_THOUSAND_REBATE(Enum): ZEV_MAX = 4000 ZEV_MID = 2688 @@ -41,17 +42,14 @@ class RebateType(Enum): INCOME_REBATES = { RebateType.C.value: { "individual_income": 100000, - "household_income": 165000, "rebate": 1000, }, RebateType.B.value: { "individual_income": 90000, - "household_income": 145000, "rebate": 2000, }, RebateType.A.value: { "individual_income": 80000, - "household_income": 125000, "rebate": 4000, }, } diff --git a/django/api/hooks.py b/django/api/hooks.py index 9bba6284..aa20eb2b 100644 --- a/django/api/hooks.py +++ b/django/api/hooks.py @@ -11,8 +11,4 @@ def set_email_status(task): if func == "api.tasks.send_individual_confirm": GoElectricRebateApplication.objects.filter(pk=application_id).update( confirmation_email_success=email_successful - ) - elif task.func == "api.tasks.send_spouse_initial_message": - GoElectricRebateApplication.objects.filter(pk=application_id).update( - spouse_email_success=email_successful - ) + ) \ No newline at end of file diff --git a/django/api/models/go_electric_rebate_application.py b/django/api/models/go_electric_rebate_application.py index 793f923c..1c9be1be 100644 --- a/django/api/models/go_electric_rebate_application.py +++ b/django/api/models/go_electric_rebate_application.py @@ -30,28 +30,12 @@ from django_extensions.db.models import TimeStampedModel from django.utils.translation import gettext_lazy as _ from django.utils.functional import classproperty -from api.signals import household_application_saved media_storage = get_storage_class()() -class ApplicationManager(Manager): - def create(self, **kwargs): - spouse_email = kwargs.pop("spouse_email", None) - obj = super().create(**kwargs) - if spouse_email: - household_application_saved.send( - sender=GoElectricRebateApplication, - instance=obj, - created=True, - spouse_email=spouse_email, - ) - return obj - class GoElectricRebateApplication(TimeStampedModel): - objects = ApplicationManager() - class Status(TextChoices): HOUSEHOLD_INITIATED = ("household_initiated", _("Household Initiated")) SUBMITTED = ("submitted", _("Submitted")) diff --git a/django/api/serializers/application_form.py b/django/api/serializers/application_form.py index 4c794837..fe0c7e03 100644 --- a/django/api/serializers/application_form.py +++ b/django/api/serializers/application_form.py @@ -36,11 +36,10 @@ class ApplicationFormCreateSerializerDefault(ApplicationFormCreateSerializer): def create(self, validated_data): request = self.context["request"] user = request.user - spouse_email = request.data.get("spouse_email") obj = GoElectricRebateApplication.objects.create( sin=validated_data["sin"], - status=self._get_status(validated_data), + status= GoElectricRebateApplication.Status.SUBMITTED, email=validated_data["email"], drivers_licence=validated_data["drivers_licence"], last_name=validated_data["last_name"], @@ -54,21 +53,12 @@ def create(self, validated_data): doc2=validated_data["doc2"], tax_year=self._get_tax_year(), application_type=validated_data["application_type"], - spouse_email=spouse_email, user=user, consent_personal=validated_data["consent_personal"], consent_tax=validated_data["consent_tax"], ) return obj - def _get_status(self, validated_data): - application_type = validated_data["application_type"] - # TODO use enum type here like status. - if application_type == "household": - return GoElectricRebateApplication.Status.HOUSEHOLD_INITIATED - return GoElectricRebateApplication.Status.SUBMITTED - - class ApplicationFormCreateSerializerBCSC(ApplicationFormCreateSerializer): class Meta(ApplicationFormCreateSerializer.Meta): exclude = [ @@ -86,12 +76,11 @@ class Meta(ApplicationFormCreateSerializer.Meta): def create(self, validated_data): request = self.context["request"] user = request.user - spouse_email = request.data.get("spouse_email") try: obj = GoElectricRebateApplication.objects.create( sin=validated_data["sin"], - status=self._get_status(validated_data), + status=GoElectricRebateApplication.Status.VERIFIED, email=validated_data["email"], drivers_licence=validated_data["drivers_licence"], last_name=user.last_name, @@ -102,7 +91,6 @@ def create(self, validated_data): postal_code=user.postal_code, tax_year=self._get_tax_year(), application_type=validated_data["application_type"], - spouse_email=spouse_email, user=user, consent_personal=validated_data["consent_personal"], consent_tax=validated_data["consent_tax"], @@ -111,13 +99,6 @@ def create(self, validated_data): except Exception as e: return Response({"response": str(e)}, status=status.HTTP_400_BAD_REQUEST) - def _get_status(self, validated_data): - application_type = validated_data["application_type"] - # TODO use enum type here like status. - if application_type == "household": - return GoElectricRebateApplication.Status.HOUSEHOLD_INITIATED - return GoElectricRebateApplication.Status.VERIFIED - class ApplicationFormSerializer(ModelSerializer): sin = SerializerMethodField() @@ -145,10 +126,4 @@ class Meta: "created", "email", "drivers_licence", - ) - - -class ApplicationFormSpouseSerializer(ModelSerializer): - class Meta: - model = GoElectricRebateApplication - fields = ["address", "city", "postal_code", "status"] + ) \ No newline at end of file diff --git a/django/api/serializers/household_member.py b/django/api/serializers/household_member.py deleted file mode 100644 index c376f716..00000000 --- a/django/api/serializers/household_member.py +++ /dev/null @@ -1,134 +0,0 @@ -from rest_framework.serializers import ( - ModelSerializer, - SerializerMethodField, - ValidationError, -) -from api.models.household_member import HouseholdMember -from rest_framework.parsers import FormParser, MultiPartParser - - -class HouseholdMemberApplicationCreateSerializer(ModelSerializer): - parser_classes = ( - MultiPartParser, - FormParser, - ) - - def validate(self, data): - user_id = self.context["request"].user.id - application_user_id = data["application"].user.id - if user_id == application_user_id: - raise ValidationError("spouse cannot be the same as the main applicant") - return data - - class Meta: - model = HouseholdMember - exclude = ["user", "bcsc_address", "bcsc_city", "bcsc_postal_code"] - - -class HouseholdMemberApplicationCreateSerializerDefault( - HouseholdMemberApplicationCreateSerializer -): - def create(self, validated_data): - user = self.context["request"].user - - obj = HouseholdMember.objects.create( - application=validated_data["application"], - sin=validated_data["sin"], - last_name=validated_data["last_name"], - first_name=validated_data["first_name"], - middle_names=validated_data["middle_names"], - date_of_birth=validated_data["date_of_birth"], - doc1=validated_data["doc1"], - doc2=validated_data["doc2"], - user=user, - consent_personal=validated_data["consent_personal"], - consent_tax=validated_data["consent_tax"], - ) - return obj - - -class HouseholdMemberApplicationCreateSerializerBCSC( - HouseholdMemberApplicationCreateSerializer -): - class Meta(HouseholdMemberApplicationCreateSerializer.Meta): - exclude = [ - "last_name", - "first_name", - "middle_names", - "date_of_birth", - "doc1", - "doc2", - ] + HouseholdMemberApplicationCreateSerializer.Meta.exclude - - def create(self, validated_data): - user = self.context["request"].user - - obj = HouseholdMember.objects.create( - application=validated_data["application"], - sin=validated_data["sin"], - last_name=user.last_name, - first_name=user.first_name, - date_of_birth=user.date_of_birth, - bcsc_address=user.street_address, - bcsc_city=user.locality, - bcsc_postal_code=user.postal_code, - user=user, - consent_personal=validated_data["consent_personal"], - consent_tax=validated_data["consent_tax"], - ) - return obj - - -class HouseholdMemberApplicationGetSerializer(ModelSerializer): - application_id = SerializerMethodField() - sin = SerializerMethodField() - address = SerializerMethodField() - city = SerializerMethodField() - postal_code = SerializerMethodField() - tax_year = SerializerMethodField() - application_type = SerializerMethodField() - status = SerializerMethodField() - - def get_address(self, obj): - return obj.application.address - - def get_city(self, obj): - return obj.application.city - - def get_postal_code(self, obj): - return obj.application.postal_code - - def get_tax_year(self, obj): - return obj.application.tax_year - - def get_application_id(self, obj): - return obj.application.id - - def get_application_type(self, obj): - return obj.application.application_type - - def get_status(self, obj): - return obj.application.status - - def get_sin(self, obj): - return "******" + str(obj.sin)[-3:] - - class Meta: - model = HouseholdMember - fields = ( - "application_id", - "application_type", - "status", - "address", - "city", - "postal_code", - "tax_year", - "first_name", - "middle_names", - "last_name", - "sin", - "date_of_birth", - "consent_personal", - "consent_tax", - "created", - ) diff --git a/django/api/services/go_electric_rebate_application.py b/django/api/services/go_electric_rebate_application.py index 76bb9f72..b6f8a800 100644 --- a/django/api/services/go_electric_rebate_application.py +++ b/django/api/services/go_electric_rebate_application.py @@ -21,7 +21,6 @@ def equivalent_drivers_licence_number_found( .filter( status__in=[ GoElectricRebateApplication.Status.SUBMITTED, - GoElectricRebateApplication.Status.HOUSEHOLD_INITIATED, GoElectricRebateApplication.Status.VERIFIED, GoElectricRebateApplication.Status.APPROVED, GoElectricRebateApplication.Status.REDEEMED, diff --git a/django/api/services/tests/test_calculate_rebate.py b/django/api/services/tests/test_calculate_rebate.py index 5f8ed5a4..13410c90 100644 --- a/django/api/services/tests/test_calculate_rebate.py +++ b/django/api/services/tests/test_calculate_rebate.py @@ -122,21 +122,6 @@ def test_individual_receives_not_approved_sin_mismatch(self): ) self.assertEqual(rebate_amount, RebateType.F.value) - def test_household_cra_responses(self): - cra_response = { - "B5t92XeH7NnFUwxc": [ - {"sin": "123456789", "year": "2020", "income": "65687"}, - {"sin": "302435839", "year": "2020", "income": "85687"}, - ], - } - application = GoElectricRebateApplication.objects.filter( - id__in=list(cra_response.keys()) - ).first() - single_cra_response = cra_response.get(application.id) - rebate_amount = calculate_individual_rebate_amount( - single_cra_response, application - ) - self.assertEqual(rebate_amount, None) def test_iterate_cra(self): # checks cra results one by one diff --git a/django/api/services/tests/test_rebate.py b/django/api/services/tests/test_rebate.py index 4d6b20b0..72d63e80 100644 --- a/django/api/services/tests/test_rebate.py +++ b/django/api/services/tests/test_rebate.py @@ -1,6 +1,5 @@ from django.test import TestCase from ...models.go_electric_rebate_application import GoElectricRebateApplication -from ...models.household_member import HouseholdMember from django.contrib.auth import get_user_model User = get_user_model() diff --git a/django/api/signal_receivers.py b/django/api/signal_receivers.py index a51b8f3a..a32bc1b2 100644 --- a/django/api/signal_receivers.py +++ b/django/api/signal_receivers.py @@ -2,13 +2,9 @@ from .models.go_electric_rebate_application import ( GoElectricRebateApplication, ) -from .models.household_member import HouseholdMember from django.dispatch import receiver from django.conf import settings -from api.models.household_member import HouseholdMember from django_q.tasks import async_task -from api.utility import addresses_match -from .signals import household_application_saved @receiver(post_save, sender=GoElectricRebateApplication) @@ -22,45 +18,6 @@ def create_application(sender, instance, created, **kwargs): ) -@receiver(household_application_saved, sender=GoElectricRebateApplication) -def after_household_application_created(sender, instance, created, **kwargs): - if settings.EMAIL["SEND_EMAIL"]: - spouse_email = kwargs.get("spouse_email") - async_task( - "api.tasks.send_spouse_initial_message", - spouse_email, - instance.id, - instance.email, - hook="api.hooks.set_email_status", - ) - - -@receiver(post_save, sender=HouseholdMember) -def after_household_member_save(sender, instance, created, **kwargs): - if created: - application = instance.application - primary_user = application.user - secondary_user = instance.user - if application.status != GoElectricRebateApplication.Status.CANCELLED: - if ( - primary_user.identity_provider == "bcsc" - and secondary_user.identity_provider == "bcsc" - and addresses_match(application, secondary_user) - ): - application.status = GoElectricRebateApplication.Status.VERIFIED - application.save() - else: - application.status = GoElectricRebateApplication.Status.SUBMITTED - application.save() - - if settings.EMAIL["SEND_EMAIL"]: - async_task( - "api.tasks.send_household_confirm", - application.email, - application.id, - ) - - @receiver(post_save, sender=GoElectricRebateApplication) def after_status_change(sender, instance, created, **kwargs): if ( diff --git a/django/api/signals.py b/django/api/signals.py deleted file mode 100644 index 7a454624..00000000 --- a/django/api/signals.py +++ /dev/null @@ -1,5 +0,0 @@ -import django.dispatch - -# custom signals - -household_application_saved = django.dispatch.Signal() diff --git a/django/api/site.py b/django/api/site.py index 4a48022e..09bb6518 100644 --- a/django/api/site.py +++ b/django/api/site.py @@ -92,20 +92,6 @@ def download_file(self, request): } ) - # TODO this should be some kind of enum like the status is. - if rebate.application_type == "household": - household_member = rebate.householdmember - data.append( - { - "sin": household_member.sin, - "years": [rebate.tax_year], - "given_name": household_member.first_name, - "family_name": household_member.last_name, - "birth_date": household_member.date_of_birth.strftime("%Y%m%d"), - "application_id": rebate.id, - } - ) - filename = self.get_cra_filename(program_code, cra_env, cra_sequence) today = date.today().strftime("%Y%m%d") content = cra.write( diff --git a/django/api/tasks.py b/django/api/tasks.py index f04ba7f2..4d694f56 100644 --- a/django/api/tasks.py +++ b/django/api/tasks.py @@ -119,72 +119,6 @@ def send_individual_confirm(recipient_email, application_id): send_email(recipient_email, application_id, message, cc_list=[]) -def send_spouse_initial_message(recipient_email, application_id, initiator_email): - origin = settings.CORS_ORIGIN_WHITELIST[0] - message = """\ - - - -

- You are receiving this e-mail as you have been identified as a - spouse under a household rebate application for the CleanBC Go - Electric Passenger Vehicle Rebate program. -

- -

- To finish the rebate application please click on the - following link: -

- -

{origin}/household?q={application_id}

- -

- If you are not the intended person to receive this email, please - contact the CleanBC Go Electric Passenger Vehicle Rebate program at - ZEVPrograms@gov.bc.ca -

- -

Additional Questions?

- -

Please feel free to contact us at ZEVPrograms@gov.bc.ca

- - - """.format( - origin=origin, application_id=application_id - ) - send_email(recipient_email, application_id, message, [initiator_email]) - - -def send_household_confirm(recipient_email, application_id): - message = """\ - - - -

- This email was generated by the CleanBC Go Electric - Passenger Vehicle Rebate program application. -

- -

Thank you.

- -

- We have now received all documentation for your application for a - household rebate under the CleanBC Go Electric Passenger Vehicle - Rebate program. You can expect to get an email reply with the result of your application within 3 weeks. -

- -

Please keep this e-mail for your records.

- -

Questions?

- -

Please feel free to contact us at ZEVPrograms@gov.bc.ca

- - - - """ - send_email(recipient_email, application_id, message, cc_list=[]) - - def send_reject(recipient_email, application_id, reason_for_decline): list_reasons = "
  • " + "
  • ".join(reason_for_decline.split(";")) + "
  • " message = """\ @@ -353,44 +287,6 @@ def send_not_approve(recipient_email, application_id, tax_year): ) -def send_household_cancel(recipient_email, application_id): - message = """\ - - - -

    This email was generated by the CleanBC Go Electric Passenger - Vehicle Rebate program application.

    - -

    Your application has been cancelled.

    - -

    Some examples of why this may have happened include:

    - - - -

    You are encouraged to apply again as an individual if your spouse is unable to complete the household application.

    - -

    Questions?

    - -

    Please feel free to contact us at ZEVPrograms@gov.bc.ca

    - - - """ - send_email( - recipient_email, - application_id, - message, - cc_list=[], - optional_subject=" – Cancelled", - ) - - def send_cancel(recipient_email, application_id): message = """\ diff --git a/django/api/urls.py b/django/api/urls.py index 97133a4a..da51e85c 100644 --- a/django/api/urls.py +++ b/django/api/urls.py @@ -2,7 +2,6 @@ from django.urls import path, include from rest_framework import routers from api.viewsets.application_form import ApplicationFormViewset -from api.viewsets.household_member import HouseholdMemberApplicationViewset class OptionalSlashRouter(routers.DefaultRouter): @@ -13,7 +12,6 @@ def __init__(self): ROUTER = OptionalSlashRouter() ROUTER.register(r"application-form", ApplicationFormViewset) -ROUTER.register(r"spouse-application", HouseholdMemberApplicationViewset) urlpatterns = [ path("admin/", admin.site.urls), diff --git a/django/api/utility.py b/django/api/utility.py index be956c7a..e365636e 100644 --- a/django/api/utility.py +++ b/django/api/utility.py @@ -4,38 +4,6 @@ def format_postal_code(postal_code): return None -def addresses_match(application, household_user): - application_street_address = application.address - household_street_address = household_user.street_address - application_city = application.city - household_city = household_user.locality - application_postal_code = application.postal_code - household_postal_code = household_user.postal_code - - if (not application_street_address) or (not household_street_address): - return False - - if (not application_city) or (not household_city): - return False - - if application_street_address != household_street_address: - return False - - if application_city != household_city: - return False - - if application_postal_code and (not household_postal_code): - return False - - if (not application_postal_code) and household_postal_code: - return False - - if application_postal_code != household_user.postal_code: - return False - - return True - - def get_applicant_full_name(application): if application.middle_names: return ( diff --git a/django/api/viewsets/application_form.py b/django/api/viewsets/application_form.py index 2ae19c19..598612d5 100644 --- a/django/api/viewsets/application_form.py +++ b/django/api/viewsets/application_form.py @@ -8,7 +8,6 @@ ApplicationFormSerializer, ApplicationFormCreateSerializerDefault, ApplicationFormCreateSerializerBCSC, - ApplicationFormSpouseSerializer, ) from api.models.go_electric_rebate_application import GoElectricRebateApplication from api.services.go_electric_rebate_application import equivalent_drivers_licence_number_found @@ -37,31 +36,6 @@ def retrieve(self, request, pk=None): def update(self, request, pk=None): return Response(status=status.HTTP_403_FORBIDDEN) - # currently only used for cancelling household_initiated applications; consider using a serializer if the logic becomes more complicated - def partial_update(self, request, pk=None): - if request.data.get("status") == GoElectricRebateApplication.Status.CANCELLED: - application = GoElectricRebateApplication.objects.get(pk=pk) - if ( - application.status - == GoElectricRebateApplication.Status.HOUSEHOLD_INITIATED - ): - application.status = GoElectricRebateApplication.Status.CANCELLED - application.save(update_fields=["status"]) - return Response(status=status.HTTP_200_OK) - - @action(detail=True, methods=["GET"], url_path="household") - def household(self, request, pk=None): - application = GoElectricRebateApplication.objects.get(pk=pk) - if application.status != GoElectricRebateApplication.Status.HOUSEHOLD_INITIATED: - error = {"error": "application_advanced"} - return Response(error, status=status.HTTP_401_UNAUTHORIZED) - application_user_id = application.user.id - household_user_id = request.user.id - if application_user_id == household_user_id: - error = {"error": "same_user"} - return Response(error, status=status.HTTP_401_UNAUTHORIZED) - serializer = ApplicationFormSpouseSerializer(application) - return Response(serializer.data) @action(detail=False, methods=["GET"], url_path="check_status") def check_status(self, request, pk=None): diff --git a/django/api/viewsets/household_member.py b/django/api/viewsets/household_member.py deleted file mode 100644 index 2fb7106a..00000000 --- a/django/api/viewsets/household_member.py +++ /dev/null @@ -1,33 +0,0 @@ -from rest_framework.viewsets import GenericViewSet -from rest_framework.response import Response -from rest_framework import status -from rest_framework.mixins import CreateModelMixin, RetrieveModelMixin - -from api.models.household_member import HouseholdMember - -from api.serializers.household_member import ( - HouseholdMemberApplicationGetSerializer, - HouseholdMemberApplicationCreateSerializerDefault, - HouseholdMemberApplicationCreateSerializerBCSC, -) - - -class HouseholdMemberApplicationViewset( - GenericViewSet, CreateModelMixin, RetrieveModelMixin -): - queryset = HouseholdMember.objects.all() - - def retrieve(self, request, pk=None): - household_member = HouseholdMember.objects.get(application=pk) - if household_member.user.id == request.user.id: - serializer = HouseholdMemberApplicationGetSerializer(household_member) - return Response(serializer.data) - response = {"message": "Forbidden"} - return Response(response, status=status.HTTP_403_FORBIDDEN) - - def get_serializer_class(self): - if self.action == "create": - if self.request.user.identity_provider == "bcsc": - return HouseholdMemberApplicationCreateSerializerBCSC - return HouseholdMemberApplicationCreateSerializerDefault - return HouseholdMemberApplicationGetSerializer diff --git a/docker-compose.yml b/docker-compose.yml index c5d5d9ba..810ae3a6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,6 @@ version: "3.9" services: db: - platform: linux/amd64 image: postgres:14 environment: - POSTGRES_DB=itvr @@ -16,7 +15,6 @@ services: timeout: 5s retries: 5 minio: - platform: linux/amd64 image: minio/minio hostname: "minio" volumes: @@ -28,7 +26,6 @@ services: - 9000:9000 - 9001:9001 createbuckets: - platform: linux/amd64 image: minio/mc depends_on: - minio @@ -130,5 +127,4 @@ services: volumes: - ./spring:/app clamav: - platform: linux/amd64 image: clamav/clamav diff --git a/frontend/public/index.html b/frontend/public/index.html index 56bbcf77..75fda3dd 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -7,7 +7,7 @@