1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00

Merge branch 'dev' into payzen

This commit is contained in:
Sylvain 2021-04-06 15:03:27 +02:00
commit 63c81b82c1
9 changed files with 53 additions and 27 deletions

View File

@ -5,13 +5,23 @@
- [TODO DEPLOY] `rails fablab:stripe:set_gateway`
- [TODO DEPLOY] `rails fablab:maintenance:rebuild_stylesheet`
## v4.7.7 (pending)
## v4.7.9
- Updated dependency to OpenLab
- Prevent the worker from crashing if OpenLab is not reachable in dev
- Fix a bug: the notification sent to the project author when a collaborator has confirmed his participation is not sent
## v4.7.8 2021 April 02
- Updated mimemagic to 0.3.10 to fix [a build issue](https://github.com/mimemagicrb/mimemagic/issues/139)
## v4.7.7 2021 April 02
- Enforced validation on required input fields
- Updated babeljs and its dependencies
- Updated german translations (thanks to [@Piapat](https://crowdin.com/profile/piapat))
- Fix a bug: the view is not refreshed when deleting a recurring slot
- Fix a bug: unable to add a new authorized file type for project's CAD files
- Fix a bug: unable to update a coupon
- Fix a bug: create a training availability with calendar in month view result in wrong dates
- Fix a security issue: updated y18n to 4.0.1 to fix [CVE-2020-7774](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7774)
## v4.7.6 2021 March 24
- Ability to disable the trainings module

View File

@ -154,7 +154,7 @@ GEM
hashery (2.1.2)
hashie (4.1.0)
htmlentities (4.3.4)
httparty (0.18.0)
httparty (0.18.1)
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
i18n (1.8.9)
@ -200,8 +200,10 @@ GEM
method_source (1.0.0)
mime-types (3.3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2020.0512)
mimemagic (0.3.5)
mime-types-data (3.2021.0225)
mimemagic (0.3.10)
nokogiri (~> 1)
rake
mini_magick (4.10.1)
mini_mime (1.0.2)
mini_portile2 (2.5.0)
@ -239,7 +241,7 @@ GEM
omniauth-rails_csrf_protection (0.1.2)
actionpack (>= 4.2)
omniauth (>= 1.3.1)
openlab_ruby (0.0.4)
openlab_ruby (0.0.5)
httparty (~> 0.13)
orm_adapter (0.5.0)
parallel (1.19.1)

View File

@ -29,7 +29,7 @@ class ProjectUser < ApplicationRecord
def notify_project_author_when_collaborator_valid
NotificationCenter.call type: 'notify_project_author_when_collaborator_valid',
receiver: project.author,
receiver: project.author.user,
attached_object: self
end
end

View File

@ -28,5 +28,7 @@ class OpenlabWorker
end
logger.debug ['Openlab sync', 'RESPONSE ERROR', response.inspect] unless response.success?
rescue Errno::ECONNREFUSED => e
logger.warn "Unable to connect to OpenProject, maybe the dev instance is not running: #{e}" if Rails.env.development?
end
end

View File

@ -73,10 +73,13 @@ de:
labels: "Label(s):"
none: "Keine"
slot_successfully_deleted: "Der Slot {START} - {END} wurde erfolgreich gelöscht"
slots_deleted: "Der Slot beginnend mit {START}, und {COUNT, plural, =1{one other} ein weiterer Slot{{COUNT} weitere Slots}}} wurden gelöscht"
slots_deleted: "Der Slot beginnend mit {START}, und {COUNT, plural, =1{ein weiterer Slot} other{{COUNT} weitere Slots}} wurden gelöscht"
unable_to_delete_the_slot: "Konnte den Slot {START} - {END} nicht löschen, wahrscheinlich weil er bereits von einem Mitglied reserviert ist"
slots_not_deleted: "Von {TOTAL} Slots {COUNT, plural, one {} =1{wurde einer wurde nicht gelöscht} other{wurden {COUNT} nicht gelöscht}}. Möglicherweise {COUNT, plural, =1{ist er} other{sind sie}} bereits reserviert."
you_should_select_at_least_a_machine: "Sie sollten mindestens eine Maschine auf diesem Slot auswählen."
inconsistent_times: "Fehler: das Ende der Verfügbarkeit liegt vor dem Beginn."
min_one_slot: "The availability must be split in one slot at least."
min_slot_duration: "You must specify a valid duration for the slots."
export_is_running_you_ll_be_notified_when_its_ready: "Export wird ausgeführt. Sie werden nach Fertigstellung benachrichtigt."
actions: "Aktionen"
block_reservations: "Reservierungen blockieren"
@ -346,7 +349,7 @@ de:
confirmation_required: "Bestätigung erforderlich"
do_you_really_want_to_delete_this_coupon: "Möchten Sie diesen Gutschein wirklich löschen?"
coupon_was_successfully_deleted: "Gutschein wurde erfolgreich gelöscht."
unable_to_delete_the_specified_coupon_already_in_use: "Unable to delete the specified coupon: it is already used with some invoices and/or some payment schedules."
unable_to_delete_the_specified_coupon_already_in_use: "Der angegebene Gutschein konnte nicht gelöscht werden: Er wird bereits bei einigen Rechnungen und/oder Zahlungsplänen verwendet."
unable_to_delete_the_specified_coupon_an_unexpected_error_occurred: "Der angegebene Gutschein konnte nicht gelöscht werden: Ein unerwarteter Fehler ist aufgetreten."
send_a_coupon: "Gutschein senden"
coupon: "Gutschein"
@ -414,7 +417,7 @@ de:
credit_note: "Gutschrift"
display_more_invoices: "Weitere Rechnungen anzeigen..."
no_invoices_for_now: "Momentan keine Rechnungen."
payment_schedules_list: "Payment schedules"
payment_schedules_list: "Zahlungspläne"
invoicing_settings: "Rechnungs-Einstellungen"
warning_invoices_disabled: "Warnung: Rechnungen sind nicht aktiviert. Es werden keine Rechnungen von Fab-Manager generiert. Trotzdem müssen Sie die unten angegebenen Informationen korrekt ausfüllen, insbesondere die Mehrwertsteuer."
change_logo: "Logo ändern"
@ -441,7 +444,7 @@ de:
important_notes: "Wichtige Hinweise"
address_and_legal_information: "Adresse und rechtliche Informationen"
invoice_reference: "Rechnungsbezug"
text: "text"
text: "Text"
year: "Jahr"
month: "Monat"
day: "Tag"
@ -449,7 +452,7 @@ de:
online_sales: "Online-Verkäufe"
wallet: "Guthabenkonto"
refund: "Erstattung"
payment_schedule: "Payment schedule"
payment_schedule: "Zahlungsplan"
model: "Modell"
documentation: "Dokumentation"
2_digits_year: "Jahr (zwei Ziffern, z.B. 75)"
@ -473,9 +476,9 @@ de:
add_a_notice_regarding_refunds_only_if_the_invoice_is_concerned: "Fügen Sie nur dann eine Mitteilung zu Erstattungen hinzu, wenn die Rechnung betroffen ist."
this_will_never_be_added_when_an_online_sales_notice_is_present: "Dies wird nie hinzugefügt, wenn eine Online-Verkaufsmitteilung vorhanden ist."
eg_RA_will_add_A_to_the_refund_invoices: '(z.B. fügt R[/A] den Rückerstattungsrechnungen "/A" hinzu)'
add_a_notice_regarding_payment_schedule: "Add a notice regarding the payment schedules, only for concerned documents."
this_will_never_be_added_with_other_notices: "This will never be added when any other notice is present."
eg_SE_to_schedules: '(eg. S[/E] will add "/E" to the payment schedules)'
add_a_notice_regarding_payment_schedule: "Fügen Sie eine Mitteilung bezüglich der Zahlungspläne hinzu; nur für betreffende Dokumente."
this_will_never_be_added_with_other_notices: "Dies wird nie hinzugefügt, wenn eine andere Mitteilung vorhanden ist."
eg_SE_to_schedules: '(zB. fügt S[/E] "/E" zu den Zahlungsplänen hinzu)'
code: "Code"
enable_the_code: "Code aktivieren"
enabled: "Aktiviert"
@ -641,13 +644,13 @@ de:
currency_alert_html: "<strong>Warnung</strong>: Die Währung kann nicht mehr geändert werden, nachdem die erste Online-Zahlung eingegangen ist. Bitte nehmen Sie diese Einstellung sorgfältig vor, bevor Sie Fab-Manager für Mitglieder öffnen."
stripe_currency: "Stripe-Währung"
payment_schedules:
filter_schedules: "Filter schedules"
no_payment_schedules: "No payment schedules to display"
load_more: "Load more"
filter_schedules: "Pläne filtern"
no_payment_schedules: "Keine Zahlungspläne zum Anzeigen"
load_more: "Mehr laden"
document_filters:
reference: "Reference"
customer: "Customer"
date: "Date"
reference: "Referenz"
customer: "Kunde"
date: "Datum"
#management of users, labels, groups, and so on
members:
users_management: "Benutzer-Verwaltung"
@ -1073,7 +1076,7 @@ de:
machines_sort_by: "Anzeigereihenfolge der Maschinen"
fab_analytics: "Fab-Analytics"
phone_required: "Telefonummer erforderlich"
address_required: "address required"
address_required: "Adresse erforderlich"
tracking_id: "Tracking-ID"
facebook_app_id: "Facebook App-ID"
twitter_analytics: "Twitter Analytics-Konto"
@ -1110,9 +1113,9 @@ de:
phone: "Telefon"
phone_is_required: "Telefonummer erforderlich"
phone_required_info: "Sie können festlegen, ob die Telefonnummer erforderlich sein soll, um einen neuen Benutzer auf Fab-Manager zu registrieren."
address: "Address"
address: "Adresse"
address_required_info_html: "You can define if the address should be required to register a new user on Fab-manager.<br/><strong>Please note</strong> that, depending on your country, the regulations may requires addresses for the invoices to be valid."
address_is_required: "Address is required"
address_is_required: "Adresse ist erforderlich"
captcha: "Captcha"
captcha_info_html: "Sie können einen Schutz gegen Roboter einrichten, um zu verhindern, dass diese Accounts erstellen. Dieser Schutz verwendet Google reCAPTCHA. Melden Sie sich für <a href='http://www.google.com/recaptcha/admin' target='_blank'>ein API-Schlüsselpaar</a> an, um reCaptcha zu verwenden."
site_key: "Site-Schlüssel"

View File

@ -73,10 +73,13 @@ es:
labels: "Etiqueta(s):"
none: "Ninguna"
slot_successfully_deleted: "La ranura {START} - {END} se ha eliminado correctamente"
slots_deleted: "The slot of {START}, and {COUNT, plural, =1{one other} other{{COUNT} others}}}, have been deleted"
slots_deleted: "The slot of {START}, and {COUNT, plural, =1{one other} other{{COUNT} others}}, have been deleted"
unable_to_delete_the_slot: "No se puede eliminar la ranura {START} - {END}, probablemente porque ya está reservada por un miembror"
slots_not_deleted: "On {TOTAL} slots, {COUNT, plural, =1{one was not deleted} other{{COUNT} were not deleted}}. Some reservations may exist on {COUNT, plural, =1{it} other{them}}."
you_should_select_at_least_a_machine: "Debe seleccionar al menos una máquina en esta ranura."
inconsistent_times: "Error: the end of the availability is before its beginning."
min_one_slot: "The availability must be split in one slot at least."
min_slot_duration: "You must specify a valid duration for the slots."
export_is_running_you_ll_be_notified_when_its_ready: "La exportación se está ejecutando. Se le notificará cuando esté listo."
actions: "Acciones"
block_reservations: "Reservas de bloques"

View File

@ -73,10 +73,13 @@ pt:
labels: "Etiqueta(s):"
none: "Nenhuma"
slot_successfully_deleted: "O slot {START} - {END} foi deletado com sucesso"
slots_deleted: "O slot de {START}, e {COUNT, plural, =1{one other} other{{COUNT} outros}}}, foram excluídos"
slots_deleted: "O slot de {START}, e {COUNT, plural, =1{one other} other{{COUNT} outros}}, foram excluídos"
unable_to_delete_the_slot: "Não é possível deletar o slot {START} - {END}, provavelmente porque já foi reservado por um membro"
slots_not_deleted: "Em {TOTAL} slots, {COUNT, plural, one {} =1{um não foi deletado} other{{COUNT} não foram deletados}}. Talvez existam algumas reservas {COUNT, plural, =1{nela} other{nelas}}."
you_should_select_at_least_a_machine: "Você deveria selecionar a última máquina neste slot."
inconsistent_times: "Error: the end of the availability is before its beginning."
min_one_slot: "The availability must be split in one slot at least."
min_slot_duration: "You must specify a valid duration for the slots."
export_is_running_you_ll_be_notified_when_its_ready: "A Exportação está em andamento. Você será notificado quando terminar."
actions: "Ações"
block_reservations: "Impedir reservas"

View File

@ -73,10 +73,13 @@ zu:
labels: "crwdns6795:0crwdne6795:0"
none: "crwdns6797:0crwdne6797:0"
slot_successfully_deleted: "crwdns6799:0{START}crwdnd6799:0{END}crwdne6799:0"
slots_deleted: "crwdns6801:0{START}crwdnd6801:0{one other}crwdnd6801:0{COUNT}crwdne6801:0"
slots_deleted: "crwdns21456:0START={START}crwdnd21456:0COUNT={COUNT}crwdnd21456:0COUNT={COUNT}crwdne21456:0"
unable_to_delete_the_slot: "crwdns6803:0{START}crwdnd6803:0{END}crwdne6803:0"
slots_not_deleted: "crwdns6805:0TOTAL={TOTAL}crwdnd6805:0COUNT={COUNT}crwdnd6805:0COUNT={COUNT}crwdnd6805:0COUNT={COUNT}crwdne6805:0"
you_should_select_at_least_a_machine: "crwdns6807:0crwdne6807:0"
inconsistent_times: "crwdns21458:0crwdne21458:0"
min_one_slot: "crwdns21460:0crwdne21460:0"
min_slot_duration: "crwdns21462:0crwdne21462:0"
export_is_running_you_ll_be_notified_when_its_ready: "crwdns6809:0crwdne6809:0"
actions: "crwdns6811:0crwdne6811:0"
block_reservations: "crwdns6813:0crwdne6813:0"

View File

@ -350,7 +350,7 @@ setup_assets_and_databases()
printf "\n\nWe will now create the default administrator of Fab-manager.\n"
read_email
PASSWORD=$(read_password)
printf "\nOK. We will fulfill the database now...\n"
printf "\nOK. We will fill the database now...\n"
cd "$FABMANAGER_PATH" && docker-compose run --rm -e ADMIN_EMAIL="$EMAIL" -e ADMIN_PASSWORD="$PASSWORD" "$SERVICE" bundle exec rake db:seed # seed the database
# now build the assets