diff --git a/Dockerfile b/Dockerfile
index 437ea175c..8814d8d78 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,39 +1,20 @@
-FROM ruby:3.2.2-alpine
-MAINTAINER contact@fab-manager.com
+FROM ruby:3.2.2
+MAINTAINER contact@sleede.com
-# Install upgrade system packages
-RUN apk update && apk upgrade && \
-# Install runtime apk dependencies
- apk add --update \
- bash \
- curl \
- nodejs \
- yarn \
- git \
- openssh \
- imagemagick \
- supervisor \
- tzdata \
- libc-dev \
- ruby-dev \
- zlib-dev \
- xz \
- xz-dev \
- postgresql-dev \
- postgresql-client \
- libxml2-dev \
- libxslt-dev \
- libsass-dev \
- libsass \
- libc6-compat \
- libidn-dev \
- shared-mime-info && \
-# Install buildtime apk dependencies
- apk add --update --no-cache --virtual .build-deps \
- alpine-sdk \
- build-base \
- linux-headers \
- patch
+# First we need to be able to fetch from https repositories
+RUN apt-get update && \
+ apt-get install -y apt-transport-https \
+ ca-certificates apt-utils supervisor locales
+
+RUN locale-gen C.UTF-8
+
+RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -\
+ && apt-get update -qq && apt-get install -qq --no-install-recommends \
+ nodejs \
+ && apt-get upgrade -qq \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/*\
+ && npm install -g yarn@1
# Fix bug: LoadError: Could not open library '/usr/local/bundle/gems/sassc-2.1.0-x86_64-linux/lib/sassc/libsass.so': Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /usr/local/bundle/gems/sassc-2.1.0-x86_64-linux/lib/sassc/libsass.so)
# add libsass-dev libsass libc6-compat and env below
@@ -46,19 +27,9 @@ RUN bundle config --global frozen 1
# Install gems in a cache efficient way
WORKDIR /tmp
-COPY Gemfile* /tmp/
-RUN bundle config set --local without 'development test doc' && bundle install && bundle binstubs --all
-
-# Prepare the application directories
-RUN mkdir -p /var/log/supervisor && \
- mkdir -p /usr/src/app/tmp/sockets && \
- mkdir -p /usr/src/app/tmp/pids && \
- mkdir -p /usr/src/app/tmp/cache && \
- mkdir -p /usr/src/app/log && \
- mkdir -p /usr/src/app/node_modules && \
- mkdir -p /usr/src/app/public/api && \
- chmod -R a+w /usr/src/app && \
- chmod -R a+w /var/run
+COPY Gemfile /tmp/
+COPY Gemfile.lock /tmp/
+RUN bundle install --binstubs --without development test doc
# Install Javascript packages
WORKDIR /usr/src/app
@@ -66,16 +37,21 @@ COPY package.json /usr/src/app/package.json
COPY yarn.lock /usr/src/app/yarn.lock
RUN yarn install
-# Clean up build deps, cached packages and temp files
-RUN apk del .build-deps && \
- yarn cache clean && \
- rm -rf /tmp/* \
- /var/tmp/* \
- /var/cache/apk/* \
- /usr/lib/ruby/gems/*/cache/* && \
- chmod -R a+w /usr/src/app/node_modules
+# Web app
+RUN mkdir -p /usr/src/app && \
+ mkdir -p /usr/src/app/config && \
+ mkdir -p /usr/src/app/invoices && \
+ mkdir -p /usr/src/app/payment_schedules && \
+ mkdir -p /usr/src/app/exports && \
+ mkdir -p /usr/src/app/imports && \
+ mkdir -p /usr/src/app/log && \
+ mkdir -p /usr/src/app/public/uploads && \
+ mkdir -p /usr/src/app/public/packs && \
+ mkdir -p /usr/src/app/accounting && \
+ mkdir -p /usr/src/app/supporting_document_files && \
+ mkdir -p /usr/src/app/tmp/sockets && \
+ mkdir -p /usr/src/app/tmp/pids
-# Copy source files
COPY docker/database.yml /usr/src/app/config/database.yml
COPY . /usr/src/app
diff --git a/app/views/notifications_mailer/notify_member_pre_booked_reservation.html.erb b/app/views/notifications_mailer/notify_member_pre_booked_reservation.html.erb
index ff507953e..7ea65e8a2 100644
--- a/app/views/notifications_mailer/notify_member_pre_booked_reservation.html.erb
+++ b/app/views/notifications_mailer/notify_member_pre_booked_reservation.html.erb
@@ -2,7 +2,7 @@
<%= t('.body.reservation_saved_html', RESERVATION: @attached_object.reservable.name) %>
-<%= t('.body.your_reserved_slots') %>
+<%= t('.body.your_reserved_slots') %>
<% @attached_object.slots.each do |slot| %>
<% if @attached_object.reservable_type == 'Event' %>
@@ -14,3 +14,4 @@
<% end %>
<% end %>
+<%= t('.body.reservation_warning', RESERVATION: @attached_object.reservable.name) %>
\ No newline at end of file
diff --git a/config/locales/mails.de.yml b/config/locales/mails.de.yml
index 30ddd2b33..0db80a329 100644
--- a/config/locales/mails.de.yml
+++ b/config/locales/mails.de.yml
@@ -83,6 +83,7 @@ de:
body:
reservation_saved_html: "You pre-registration %{RESERVATION} has been successfully saved"
your_reserved_slots: "Your pre-booked slots are:"
+ reservation_warning: "This email does not count as registration to %{RESERVATION}.
You will receive another email to confirm or deny your request."
notify_member_subscribed_plan_is_changed:
subject: "Ihr Abonnement wurde aktualisiert"
body:
diff --git a/config/locales/mails.en.yml b/config/locales/mails.en.yml
index f2071ec54..056bd79c2 100644
--- a/config/locales/mails.en.yml
+++ b/config/locales/mails.en.yml
@@ -83,6 +83,7 @@ en:
body:
reservation_saved_html: "You pre-registration %{RESERVATION} has been successfully saved"
your_reserved_slots: "Your pre-booked slots are:"
+ reservation_warning: "This email does not count as registration to %{RESERVATION}.
You will receive another email to confirm or deny your request."
notify_member_subscribed_plan_is_changed:
subject: "Your subscription has been updated"
body:
diff --git a/config/locales/mails.es-MX.yml b/config/locales/mails.es-MX.yml
index 0fa48d8be..e12b2ec24 100644
--- a/config/locales/mails.es-MX.yml
+++ b/config/locales/mails.es-MX.yml
@@ -83,6 +83,7 @@ es-MX:
body:
reservation_saved_html: "Su preinscripción de %{RESERVATION} se ha guardado correctamente"
your_reserved_slots: "Sus franjas horarias preinscritas son:"
+ reservation_warning: "Este email no es una confirmación de su inscripción a %{RESERVATION}
. Recibirá otro email para confirmar o rechazar su solicitud."
notify_member_subscribed_plan_is_changed:
subject: "Su suscripción ha sido actualizada"
body:
diff --git a/config/locales/mails.es.yml b/config/locales/mails.es.yml
index eaf16a191..159cdf437 100644
--- a/config/locales/mails.es.yml
+++ b/config/locales/mails.es.yml
@@ -83,6 +83,7 @@ es:
body:
reservation_saved_html: "Su preinscripción de %{RESERVATION} se ha guardado correctamente"
your_reserved_slots: "Sus franjas horarias preinscritas son:"
+ reservation_warning: "Este email no es una confirmación de su inscripción a %{RESERVATION}
. Recibirá otro email para confirmar o rechazar su solicitud."
notify_member_subscribed_plan_is_changed:
subject: "Su suscripción ha sido actualizada"
body:
diff --git a/config/locales/mails.fr.yml b/config/locales/mails.fr.yml
index 39956a736..1d4cd1ada 100644
--- a/config/locales/mails.fr.yml
+++ b/config/locales/mails.fr.yml
@@ -35,7 +35,7 @@ fr:
notify_admin_subscription_extended:
subject: "Un abonnement a été prolongé"
body:
- subscription_extended_html: "L'abonnement {PLAN} du membre {NAME} a été prolongé {FREE, select, true{gratuitment} other{}} jusqu'au {DATE}." #messageFormat interpolation
+ subscription_extended_html: "L'abonnement {PLAN} du membre {NAME} a été prolongé {FREE, select, true{gratuitement} other{}} jusqu'au {DATE}." #messageFormat interpolation
notify_member_subscription_extended:
subject: "Votre abonnement a été prolongé"
body:
@@ -79,10 +79,11 @@ fr:
reservation_saved_html: "Votre réservation %{RESERVATION} a bien été enregistrée."
your_reserved_slots: "Les créneaux que vous avez réservés sont :"
notify_member_pre_booked_reservation:
- subject: "Votre pré-inscription a bien été prise en compte"
+ subject: "Votre demande de pré-inscription a bien été prise en compte"
body:
- reservation_saved_html: "Votre réservation %{RESERVATION} a bien été prise en compte."
- your_reserved_slots: "Les créneaux que vous avez pré-inscrit sont :"
+ reservation_saved_html: "Votre demande de pré-inscription à %{RESERVATION} a bien été prise en compte."
+ your_reserved_slots: "Les créneaux sur lesquels vous êtes pré-inscrits sont :"
+ reservation_warning: "Ce mail ne vaut pas inscription à %{RESERVATION}.
Un mail vous sera envoyé pour valider ou non votre demande."
notify_member_subscribed_plan_is_changed:
subject: "Votre abonnement a été mis à jour"
body:
@@ -157,7 +158,7 @@ fr:
notify_member_training_invalidated:
subject: "Votre autorisation a été invalidée"
body:
- training_invalidated_html: "Vous avez suivi la formation %{TRAINING}, le %{DATE} vous donnant accès aux %{MACHINES}.
En raison de l'abscence de réservation pour l'une de ces machines au cours des %{PERIOD} derniers mois, votre autorisation a été invalidée.
Veuillez valider la formation à nouveau afin de continuer à réserver ces machines.
."
+ training_invalidated_html: "Vous avez suivi la formation %{TRAINING}, le %{DATE} vous donnant accès aux %{MACHINES}.
En raison de l'absence de réservation pour l'une de ces machines au cours des %{PERIOD} derniers mois, votre autorisation a été invalidée.
Veuillez valider la formation à nouveau afin de continuer à réserver ces machines.
."
notify_member_subscription_is_expired:
subject: "Votre abonnement est arrivé à expiration"
body:
@@ -346,13 +347,13 @@ fr:
subject: "[URGENT] Erreur lors du prélèvement par carte"
body:
remember: "Conformément à l'échéancier de paiement %{REFERENCE}, un prélèvement par carte de %{AMOUNT} était prévu le %{DATE}."
- error: "Malheureusement, une erreur s'est prouite et ce prélèvement n'a pas pu être effectué correctement."
+ error: "Malheureusement, une erreur s'est produite et ce prélèvement n'a pas pu être effectué correctement."
action: "Veuillez ensuite consulter le tableau de bord de %{GATEWAY} et contacter le membre dès que possible pour résoudre le problème."
notify_member_payment_schedule_error:
subject: "[URGENT] Erreur lors du prélèvement par carte"
body:
remember: "Conformément à votre échéancier de paiement %{REFERENCE}, un prélèvement par carte de %{AMOUNT} était prévu le %{DATE}."
- error: "Malheureusement, une erreur s'est prouite et ce prélèvement n'a pas pu être effectué correctement."
+ error: "Malheureusement, une erreur s'est produite et ce prélèvement n'a pas pu être effectué correctement."
action: "Veuillez contacter un responsable dès que possible pour résoudre le problème."
notify_admin_payment_schedule_failed:
subject: "[URGENT] Échec du prélèvement par carte"
diff --git a/config/locales/mails.it.yml b/config/locales/mails.it.yml
index c7e2a9238..9ec3b6fc6 100644
--- a/config/locales/mails.it.yml
+++ b/config/locales/mails.it.yml
@@ -83,6 +83,7 @@ it:
body:
reservation_saved_html: "You pre-registration %{RESERVATION} has been successfully saved"
your_reserved_slots: "Your pre-booked slots are:"
+ reservation_warning: "This email does not count as registration to %{RESERVATION}.
You will receive another email to confirm or deny your request."
notify_member_subscribed_plan_is_changed:
subject: "Il tuo abbonamento è stato aggiornato"
body:
diff --git a/config/locales/mails.no.yml b/config/locales/mails.no.yml
index 347c4e187..ac67cc57e 100644
--- a/config/locales/mails.no.yml
+++ b/config/locales/mails.no.yml
@@ -83,6 +83,7 @@
body:
reservation_saved_html: "You pre-registration %{RESERVATION} has been successfully saved"
your_reserved_slots: "Your pre-booked slots are:"
+ reservation_warning: "This email does not count as registration to %{RESERVATION}.
You will receive another email to confirm or deny your request."
notify_member_subscribed_plan_is_changed:
subject: "Medlemskapet ditt er oppdatert"
body:
diff --git a/config/locales/mails.pt.yml b/config/locales/mails.pt.yml
index 7a426a9c4..1dd468c18 100644
--- a/config/locales/mails.pt.yml
+++ b/config/locales/mails.pt.yml
@@ -83,6 +83,7 @@ pt:
body:
reservation_saved_html: "You pre-registration %{RESERVATION} has been successfully saved"
your_reserved_slots: "Your pre-booked slots are:"
+ reservation_warning: "This email does not count as registration to %{RESERVATION}.
You will receive another email to confirm or deny your request."
notify_member_subscribed_plan_is_changed:
subject: "Sua inscrição foi modificada"
body:
diff --git a/config/locales/mails.zu.yml b/config/locales/mails.zu.yml
index d05184c69..5f9a52d37 100644
--- a/config/locales/mails.zu.yml
+++ b/config/locales/mails.zu.yml
@@ -83,6 +83,7 @@ zu:
body:
reservation_saved_html: "crwdns38037:0%{RESERVATION}crwdne38037:0"
your_reserved_slots: "crwdns38039:0crwdne38039:0"
+ reservation_warning: "crwdns38136:0%{RESERVATION}crwdne38136:0"
notify_member_subscribed_plan_is_changed:
subject: "crwdns29590:0crwdne29590:0"
body:
@@ -343,37 +344,37 @@ zu:
schedule_in_your_dashboard_html: "crwdns29878:0%{DASHBOARD}crwdne29878:0"
your_dashboard: "crwdns29880:0crwdne29880:0"
notify_admin_payment_schedule_error:
- subject: "crwdns29882:0[URGENT]crwdne29882:0"
+ subject: "crwdns29882:0crwdne29882:0"
body:
remember: "crwdns29884:0%{REFERENCE}crwdnd29884:0%{AMOUNT}crwdnd29884:0%{DATE}crwdne29884:0"
error: "crwdns29886:0crwdne29886:0"
action: "crwdns29888:0%{GATEWAY}crwdne29888:0"
notify_member_payment_schedule_error:
- subject: "crwdns29890:0[URGENT]crwdne29890:0"
+ subject: "crwdns29890:0crwdne29890:0"
body:
remember: "crwdns29892:0%{REFERENCE}crwdnd29892:0%{AMOUNT}crwdnd29892:0%{DATE}crwdne29892:0"
error: "crwdns29894:0crwdne29894:0"
action: "crwdns29896:0crwdne29896:0"
notify_admin_payment_schedule_failed:
- subject: "crwdns29898:0[URGENT]crwdne29898:0"
+ subject: "crwdns29898:0crwdne29898:0"
body:
remember: "crwdns29900:0%{REFERENCE}crwdnd29900:0%{AMOUNT}crwdnd29900:0%{DATE}crwdne29900:0"
error: "crwdns29902:0crwdne29902:0"
action: "crwdns29904:0crwdne29904:0"
notify_member_payment_schedule_failed:
- subject: "crwdns29906:0[URGENT]crwdne29906:0"
+ subject: "crwdns29906:0crwdne29906:0"
body:
remember: "crwdns29908:0%{REFERENCE}crwdnd29908:0%{AMOUNT}crwdnd29908:0%{DATE}crwdne29908:0"
error: "crwdns29910:0crwdne29910:0"
action_html: "crwdns29912:0%{DASHBOARD}crwdne29912:0"
your_dashboard: "crwdns29914:0crwdne29914:0"
notify_admin_payment_schedule_gateway_canceled:
- subject: "crwdns29916:0[URGENT]crwdne29916:0"
+ subject: "crwdns29916:0crwdne29916:0"
body:
error: "crwdns29918:0%{REFERENCE}crwdnd29918:0%{GATEWAY}crwdne29918:0"
action: "crwdns29920:0crwdne29920:0"
notify_member_payment_schedule_gateway_canceled:
- subject: "crwdns29922:0[URGENT]crwdne29922:0"
+ subject: "crwdns29922:0crwdne29922:0"
body:
error: "crwdns29924:0%{REFERENCE}crwdne29924:0"
action: "crwdns29926:0crwdne29926:0"