From db8de18bd447cbb6f263c0d9b1624b1281e339d5 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 8 Jun 2020 11:38:49 +0200 Subject: [PATCH] set openlab-projects id & secret from the UI --- app/assets/javascripts/router.js.erb | 3 ++- .../admin/projects/settings.html.erb | 26 +++++++++++++++++++ app/models/setting.rb | 4 ++- app/workers/openlab_worker.rb | 11 +++++--- config/locales/app.admin.en.yml | 7 +++++ config/locales/app.admin.fr.yml | 7 +++++ lib/tasks/fablab/setup.rake | 4 ++- 7 files changed, 56 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/router.js.erb b/app/assets/javascripts/router.js.erb index 17ec7d1dd..8e6979fe6 100644 --- a/app/assets/javascripts/router.js.erb +++ b/app/assets/javascripts/router.js.erb @@ -628,7 +628,8 @@ angular.module('application.router', ['ui.router']) licencesPromise: ['Licence', function (Licence) { return Licence.query().$promise; }], themesPromise: ['Theme', function (Theme) { return Theme.query().$promise; }], settingsPromise: ['Setting', function (Setting) { - return Setting.query({ names: "['feature_tour_display', 'disqus_shortname', 'allowed_cad_extensions', 'allowed_cad_mime_types']" }).$promise; + return Setting.query({ names: "['feature_tour_display', 'disqus_shortname', 'allowed_cad_extensions', \ + 'allowed_cad_mime_types', 'open_lab_app_id', 'open_lab_app_secret']" }).$promise; }] } }) diff --git a/app/assets/templates/admin/projects/settings.html.erb b/app/assets/templates/admin/projects/settings.html.erb index 87ba08dae..b52c8cf76 100644 --- a/app/assets/templates/admin/projects/settings.html.erb +++ b/app/assets/templates/admin/projects/settings.html.erb @@ -61,3 +61,29 @@ + +
+
+ {{ 'app.admin.projects.settings.projects_sharing' }} +
+
+
+

{{ 'app.admin.projects.settings.open_lab_projects' }}

+

+
+ + +
+
+ + +
+
+
+
diff --git a/app/models/setting.rb b/app/models/setting.rb index 1da5db5b4..cf810ac00 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -92,7 +92,9 @@ class Setting < ApplicationRecord email_from disqus_shortname allowed_cad_extensions - allowed_cad_mime_types] } + allowed_cad_mime_types + openlab_app_id + openlab_app_secret] } def value last_value = history_values.order(HistoryValue.arel_table['created_at'].desc).first last_value&.value diff --git a/app/workers/openlab_worker.rb b/app/workers/openlab_worker.rb index eea47d217..d19534ef9 100644 --- a/app/workers/openlab_worker.rb +++ b/app/workers/openlab_worker.rb @@ -1,12 +1,15 @@ +# frozen_string_literal: true + +# Asynchronously synchronize the projects with OpenLab-Projects class OpenlabWorker include Sidekiq::Worker sidekiq_options queue: 'default', retry: true - Logger = Sidekiq.logger.level == Logger::DEBUG ? Sidekiq.logger : nil + LOGGER = Sidekiq.logger.level == Logger::DEBUG ? Sidekiq.logger : nil OPENLAB_CLIENT = Openlab::Projects.new def perform(action, project_id) - logger.debug ["Openlab sync", action, "project ID: #{project_id}"] + LOGGER&.debug ['Openlab sync', action, "project ID: #{project_id}"] case action.to_s when /create/ @@ -17,8 +20,10 @@ class OpenlabWorker response = OPENLAB_CLIENT.update(project_id, project.openlab_attributes) when /destroy/ response = OPENLAB_CLIENT.destroy(project_id) + else + raise NotImplementedError end - logger.debug ["Openlab sync", "RESPONSE ERROR", response.inspect] unless response.success? + LOGGER&.debug ['Openlab sync', 'RESPONSE ERROR', response.inspect] unless response.success? end end diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index 396912162..beadcdec9 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -156,6 +156,11 @@ en: test_file: "Test a file" set_a_file: "Select a file" file_is_TYPE: "MIME type of this file is {TYPE}" + projects_sharing: "Projects sharing" + open_lab_projects: "OpenLab Projects" + open_lab_info_html: "Share your projects with other Fab Labs and display a gallery of shared projects. Please send an email to contact@fab-manager.com to get your access credentials for free." + open_lab_app_id: "ID" + open_lab_app_secret: "Secret" #track and monitor the trainings trainings: trainings_monitoring: "Trainings monitoring" @@ -1072,6 +1077,8 @@ en: disqus_shortname: "Disqus shortname" COUNT_items_removed: "{COUNT, plural, =1{One item} other{{COUNT} items}} removed" item_added: "One item added" + openlab_app_id: "OpenLab-Projects ID" + openlab_app_secret: "OpenLab-Projects secret" general: general: "General" title: "Title" diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index 9080173bc..e0d21a6c5 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -156,6 +156,11 @@ fr: test_file: "Tester un fichier" set_a_file: "Sélectionner un fichier" file_is_TYPE: "Le type MIME de ce fichier est {TYPE}" + projects_sharing: "Partage de projets" + open_lab_projects: "OpenLab Projects" + open_lab_info_html: "Partagez vos projets avec d'autres Fab Labs et affichez une galerie de projets partagés. Veuillez envoyer un courriel à contact@fab-manager.com pour obtenir gratuitement vos identifiants d'accès." + open_lab_app_id: "ID" + open_lab_app_secret: "Secret" #track and monitor the trainings trainings: trainings_monitoring: "Suivi formations" @@ -1072,6 +1077,8 @@ fr: disqus_shortname: "nom court Disqus" COUNT_items_removed: "{COUNT, plural, =1{Un élément retiré} other{{COUNT} éléments retirés}}" item_added: "Un élément ajouté" + openlab_app_id: "l'ID OpenLab-Projects" + openlab_app_secret: "secret OpenLab-Projects" general: general: "Général" title: "Titre" diff --git a/lib/tasks/fablab/setup.rake b/lib/tasks/fablab/setup.rake index 291bfa486..81830bca0 100644 --- a/lib/tasks/fablab/setup.rake +++ b/lib/tasks/fablab/setup.rake @@ -122,7 +122,9 @@ namespace :fablab do %w[_ DEFAULT_MAIL_FROM email_from], %w[_ DISQUS_SHORTNAME disqus_shortname], %w[_ ALLOWED_EXTENSIONS allowed_cad_extensions], - %w[_ ALLOWED_MIME_TYPES allowed_cad_mime_types] + %w[_ ALLOWED_MIME_TYPES allowed_cad_mime_types], + %w[_ OPENLAB_APP_ID openlab_app_id], + %w[_ OPENLAB_APP_SECRET openlab_app_secret] ] mapping.each do |m|