From 93c6567ae7c6a9e5c62d0d952ebad5673446c61b Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 3 Apr 2024 12:46:12 +0200 Subject: [PATCH 01/56] create admin_engine --- lib/decidim/anonymous_codes.rb | 1 + lib/decidim/anonymous_codes/admin_engine.rb | 41 +++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 lib/decidim/anonymous_codes/admin_engine.rb diff --git a/lib/decidim/anonymous_codes.rb b/lib/decidim/anonymous_codes.rb index c9900ba..11aad60 100644 --- a/lib/decidim/anonymous_codes.rb +++ b/lib/decidim/anonymous_codes.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require "decidim/anonymous_codes/engine" +require "decidim/anonymous_codes/admin_engine" module Decidim # This namespace holds the logic of the `decidim-anonymous_codes` module. diff --git a/lib/decidim/anonymous_codes/admin_engine.rb b/lib/decidim/anonymous_codes/admin_engine.rb new file mode 100644 index 0000000..49ed7a5 --- /dev/null +++ b/lib/decidim/anonymous_codes/admin_engine.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +module Decidim + module AnonymousCodes + # This is the admin interface for `decidim-blogs`. It lets you edit and + # configure the blog associated to a participatory process. + class AdminEngine < ::Rails::Engine + isolate_namespace Decidim::AnonymousCodes::Admin + + paths["db/migrate"] = nil + paths["lib/tasks"] = nil + + routes do + resources :code_groups + root to: "code_groups#index" + end + + def load_seed + nil + end + + initializer "decidim_decidim_awesome.admin_mount_routes" do + Decidim::Core::Engine.routes do + mount Decidim::DecidimAwesome::AdminEngine, at: "/admin/decidim_awesome", as: "decidim_admin_decidim_awesome" + end + end + + initializer "decidim_awesome.admin_menu" do + Decidim.menu :admin_menu do |menu| + menu.add_item :awesome_menu, + I18n.t("menu.decidim_awesome", scope: "decidim.admin"), + decidim_admin_decidim_awesome.config_path(:editors), + icon_name: "fire", + position: 7.5, + active: is_active_link?(decidim_admin_decidim_awesome.config_path(:editors), :inclusive), + if: defined?(current_user) && current_user&.read_attribute("admin") + end + end + end + end +end From 9afcf35be43fe22606ee1a054e843a99938efe0b Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 3 Apr 2024 12:55:32 +0200 Subject: [PATCH 02/56] add menu to admin --- lib/decidim/anonymous_codes.rb | 1 + lib/decidim/anonymous_codes/admin.rb | 8 ++++++++ lib/decidim/anonymous_codes/admin_engine.rb | 14 +++++++------- 3 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 lib/decidim/anonymous_codes/admin.rb diff --git a/lib/decidim/anonymous_codes.rb b/lib/decidim/anonymous_codes.rb index 11aad60..52c2914 100644 --- a/lib/decidim/anonymous_codes.rb +++ b/lib/decidim/anonymous_codes.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require "decidim/anonymous_codes/admin" require "decidim/anonymous_codes/engine" require "decidim/anonymous_codes/admin_engine" diff --git a/lib/decidim/anonymous_codes/admin.rb b/lib/decidim/anonymous_codes/admin.rb new file mode 100644 index 0000000..c066a38 --- /dev/null +++ b/lib/decidim/anonymous_codes/admin.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Decidim + module AnonymousCodes + module Admin + end + end +end diff --git a/lib/decidim/anonymous_codes/admin_engine.rb b/lib/decidim/anonymous_codes/admin_engine.rb index 49ed7a5..de764ac 100644 --- a/lib/decidim/anonymous_codes/admin_engine.rb +++ b/lib/decidim/anonymous_codes/admin_engine.rb @@ -19,20 +19,20 @@ def load_seed nil end - initializer "decidim_decidim_awesome.admin_mount_routes" do + initializer "decidim_decidim-anonymous_codes.admin_mount_routes" do Decidim::Core::Engine.routes do - mount Decidim::DecidimAwesome::AdminEngine, at: "/admin/decidim_awesome", as: "decidim_admin_decidim_awesome" + mount Decidim::AnonymousCodes::AdminEngine, at: "/admin/anonymous_codes", as: "decidim_admin_anonymous_codes" end end - initializer "decidim_awesome.admin_menu" do + initializer "decidim-anonymous_codes.admin_menu" do Decidim.menu :admin_menu do |menu| - menu.add_item :awesome_menu, - I18n.t("menu.decidim_awesome", scope: "decidim.admin"), - decidim_admin_decidim_awesome.config_path(:editors), + menu.add_item :anonymous_codes_menu, + I18n.t("menu.anonymous_codes", scope: "decidim.admin"), + decidim_admin_anonymous_codes.code_groups_path, icon_name: "fire", position: 7.5, - active: is_active_link?(decidim_admin_decidim_awesome.config_path(:editors), :inclusive), + active: is_active_link?(decidim_admin_anonymous_codes.code_groups_path, :inclusive), if: defined?(current_user) && current_user&.read_attribute("admin") end end From 115b8f401e7f10c7db80243f8b674083f4e3f0e4 Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 3 Apr 2024 13:07:09 +0200 Subject: [PATCH 03/56] add admin menu translation --- config/locales/en.yml | 4 ++++ lib/decidim/anonymous_codes/admin_engine.rb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 1491caf..76442c4 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,2 +1,6 @@ --- en: + decidim: + admin: + menu: + anonymous_codes: Anonymous Codes diff --git a/lib/decidim/anonymous_codes/admin_engine.rb b/lib/decidim/anonymous_codes/admin_engine.rb index de764ac..bd1b889 100644 --- a/lib/decidim/anonymous_codes/admin_engine.rb +++ b/lib/decidim/anonymous_codes/admin_engine.rb @@ -30,7 +30,7 @@ def load_seed menu.add_item :anonymous_codes_menu, I18n.t("menu.anonymous_codes", scope: "decidim.admin"), decidim_admin_anonymous_codes.code_groups_path, - icon_name: "fire", + icon_name: "hard-drive", position: 7.5, active: is_active_link?(decidim_admin_anonymous_codes.code_groups_path, :inclusive), if: defined?(current_user) && current_user&.read_attribute("admin") From 4dd27b80c8cb14eb7f678f340cf7611238db2c97 Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 3 Apr 2024 13:25:25 +0200 Subject: [PATCH 04/56] add code_groups_controller --- .../anonymous_codes/admin/code_groups_controller.rb | 11 +++++++++++ .../anonymous_codes/admin/code_groups/index.html.erb | 1 + 2 files changed, 12 insertions(+) create mode 100644 app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb create mode 100644 app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb new file mode 100644 index 0000000..f42c282 --- /dev/null +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module Decidim + module AnonymousCodes + module Admin + class CodeGroupsController < ApplicationController + def index; end + end + end + end +end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb new file mode 100644 index 0000000..a9a3468 --- /dev/null +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -0,0 +1 @@ +

Hola

\ No newline at end of file From 894f7527c4e87eb4713d3f1b3f9edd9e609718ef Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 3 Apr 2024 13:34:32 +0200 Subject: [PATCH 05/56] add admin template for view --- .../anonymous_codes/admin/application_controller.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 app/controllers/decidim/anonymous_codes/admin/application_controller.rb diff --git a/app/controllers/decidim/anonymous_codes/admin/application_controller.rb b/app/controllers/decidim/anonymous_codes/admin/application_controller.rb new file mode 100644 index 0000000..fdb35ce --- /dev/null +++ b/app/controllers/decidim/anonymous_codes/admin/application_controller.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module Decidim + module AnonymousCodes + module Admin + class ApplicationController < Decidim::Admin::ApplicationController + end + end + end +end From 183332cfd728fc49451233a39ff61488b532f2f2 Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 3 Apr 2024 17:31:14 +0200 Subject: [PATCH 06/56] add table to index --- .../admin/code_groups_controller.rb | 12 +++++++ .../anonymous_codes/admin/_form.html.erb | 19 +++++++++++ .../admin/code_groups/index.html.erb | 33 ++++++++++++++++++- .../admin/code_groups/new.html.erb | 0 .../anonymous_codes/admin/edit.html.erb | 0 .../anonymous_codes/admin/show.html.erb | 0 config/locales/en.yml | 9 ++++- 7 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 app/views/decidim/anonymous_codes/admin/_form.html.erb create mode 100644 app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb create mode 100644 app/views/decidim/anonymous_codes/admin/edit.html.erb create mode 100644 app/views/decidim/anonymous_codes/admin/show.html.erb diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index f42c282..b170b47 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -4,7 +4,19 @@ module Decidim module AnonymousCodes module Admin class CodeGroupsController < ApplicationController + helper_method :groups + def index; end + + def new; end + + def create; end + + private + + def groups + AnonymousCodes::Group.all + end end end end diff --git a/app/views/decidim/anonymous_codes/admin/_form.html.erb b/app/views/decidim/anonymous_codes/admin/_form.html.erb new file mode 100644 index 0000000..c06015e --- /dev/null +++ b/app/views/decidim/anonymous_codes/admin/_form.html.erb @@ -0,0 +1,19 @@ +
+ <%= form.text_field :title, label: t(".title") %> +
+ +
+ <%= form.date_field :expires_at, label: t(".expires_at") %> +
+ +
+ <%= form.check_box :active, label: t(".active") %> +
+ +
+ <%= form.number_field :max_reuses, label: t(".max_reuses") %> +
+ +
+ <%= form.text_field :title, label: t(".title") %> +
\ No newline at end of file diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index a9a3468..9dbb5c7 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -1 +1,32 @@ -

Hola

\ No newline at end of file +
+
+

Access code groups

+ New access code group +
+
+
+ + + + + + + + + + + + + <% groups.each do |group| %> + + + + + + + <% end %> + +
<%= t("decidim.admin.code_group.index.title") %><%= t("decidim.admin.code_group.index.expires_at") %><%= t("decidim.admin.code_group.index.active") %><%= t("decidim.admin.code_group.index.num_of_tockens") %><%= t("decidim.admin.code_group.index.max_reuses") %>
<%= translated_attribute(group.title)%><%= translated_attribute(group.expires_at) %><%= translated_attribute(group.active) %><%= translated_attribute(group.max_reuses) %>
+
+
+
\ No newline at end of file diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/app/views/decidim/anonymous_codes/admin/edit.html.erb b/app/views/decidim/anonymous_codes/admin/edit.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/app/views/decidim/anonymous_codes/admin/show.html.erb b/app/views/decidim/anonymous_codes/admin/show.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/config/locales/en.yml b/config/locales/en.yml index 76442c4..4f7b93a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2,5 +2,12 @@ en: decidim: admin: + code_group: + index: + title: Title + expires_at: Expires at + active: Active + num_of_tockens: Num. of Tockens + max_reuses: Re-use max menu: - anonymous_codes: Anonymous Codes + anonymous_codes: Access Codes From 306d829951988a326074aa59477ec301ce66e459 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 11:31:48 +0200 Subject: [PATCH 07/56] update private method gruops --- .../decidim/anonymous_codes/admin/code_groups_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index b170b47..616d6e5 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -15,7 +15,7 @@ def create; end private def groups - AnonymousCodes::Group.all + AnonymousCodes::Group.for(current_organization) end end end From d8f307f28a005374d46bccf5ed33ede029ceb657 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 11:37:55 +0200 Subject: [PATCH 08/56] fix lint errors --- .../anonymous_codes/admin/{ => code_groups}/_form.html.erb | 2 +- .../anonymous_codes/admin/{ => code_groups}/edit.html.erb | 0 .../decidim/anonymous_codes/admin/code_groups/index.html.erb | 4 ++-- .../anonymous_codes/admin/{ => code_groups}/show.html.erb | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename app/views/decidim/anonymous_codes/admin/{ => code_groups}/_form.html.erb (98%) rename app/views/decidim/anonymous_codes/admin/{ => code_groups}/edit.html.erb (100%) rename app/views/decidim/anonymous_codes/admin/{ => code_groups}/show.html.erb (100%) diff --git a/app/views/decidim/anonymous_codes/admin/_form.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb similarity index 98% rename from app/views/decidim/anonymous_codes/admin/_form.html.erb rename to app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb index c06015e..24f7d67 100644 --- a/app/views/decidim/anonymous_codes/admin/_form.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb @@ -16,4 +16,4 @@
<%= form.text_field :title, label: t(".title") %> -
\ No newline at end of file + diff --git a/app/views/decidim/anonymous_codes/admin/edit.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb similarity index 100% rename from app/views/decidim/anonymous_codes/admin/edit.html.erb rename to app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 9dbb5c7..3d59a03 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -19,7 +19,7 @@ <% groups.each do |group| %> - <%= translated_attribute(group.title)%> + <%= translated_attribute(group.title) %> <%= translated_attribute(group.expires_at) %> <%= translated_attribute(group.active) %> <%= translated_attribute(group.max_reuses) %> @@ -29,4 +29,4 @@ - \ No newline at end of file + diff --git a/app/views/decidim/anonymous_codes/admin/show.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/show.html.erb similarity index 100% rename from app/views/decidim/anonymous_codes/admin/show.html.erb rename to app/views/decidim/anonymous_codes/admin/code_groups/show.html.erb From 583133ae6a5d9266aeaedb147aa5ff4a1e75ea2a Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 13:45:35 +0200 Subject: [PATCH 09/56] change datetime format in index table --- .../anonymous_codes/admin/code_groups/index.html.erb | 4 +++- config/locales/en.yml | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 3d59a03..426c937 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -20,9 +20,11 @@ <% groups.each do |group| %> <%= translated_attribute(group.title) %> - <%= translated_attribute(group.expires_at) %> + <%= translated_attribute(l(group.expires_at, format: :decidim_short)) %> <%= translated_attribute(group.active) %> + <%= translated_attribute(group.tokens.count) %> <%= translated_attribute(group.max_reuses) %> + <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 61ad251..d568266 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -4,11 +4,11 @@ en: admin: code_group: index: - title: Title - expires_at: Expires at active: Active - num_of_tockens: Num. of Tockens + expires_at: Expires at max_reuses: Re-use max + num_of_tockens: Num. of Tockens + title: Title menu: anonymous_codes: Access Codes anonymous_codes: From ed399c4563ac3f36e739e70c7c53706f457d7436 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 14:39:44 +0200 Subject: [PATCH 10/56] add action icons --- .../anonymous_codes/admin/code_groups/index.html.erb | 8 ++++++-- config/locales/en.yml | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 426c937..fa117a1 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -1,7 +1,7 @@
@@ -24,7 +24,11 @@ <%= translated_attribute(group.active) %> <%= translated_attribute(group.tokens.count) %> <%= translated_attribute(group.max_reuses) %> - + + <%= icon "data-transfer-download", class: "action-icon--edit" %> + <%= icon "pencil", class: "action-icon--edit" %> + <%= icon "eye" %> + <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index d568266..7021ddb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -7,6 +7,7 @@ en: active: Active expires_at: Expires at max_reuses: Re-use max + new_access_code_group_button: New access code group num_of_tockens: Num. of Tockens title: Title menu: From 6e8844a4f85deb01e2576798f757dfb1b8236237 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 15:36:42 +0200 Subject: [PATCH 11/56] refactor index table body content --- .../anonymous_codes/admin/code_groups/index.html.erb | 10 +++++----- .../anonymous_codes/admin/code_groups/show.html.erb | 0 2 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 app/views/decidim/anonymous_codes/admin/code_groups/show.html.erb diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index fa117a1..dc94f42 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -1,7 +1,7 @@
@@ -20,10 +20,10 @@ <% groups.each do |group| %> <%= translated_attribute(group.title) %> - <%= translated_attribute(l(group.expires_at, format: :decidim_short)) %> - <%= translated_attribute(group.active) %> - <%= translated_attribute(group.tokens.count) %> - <%= translated_attribute(group.max_reuses) %> + <%= l(group.expires_at, format: :decidim_short) %> + <%= t("booleans.#{group.active}") %> + <%= group.tokens.count %> + <%= group.max_reuses %> <%= icon "data-transfer-download", class: "action-icon--edit" %> <%= icon "pencil", class: "action-icon--edit" %> diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/show.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/show.html.erb deleted file mode 100644 index e69de29..0000000 From 4242352ff9292a2f5a09981e000aae9706b9da6b Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 17:58:20 +0200 Subject: [PATCH 12/56] fix index new_access_code_button --- .../anonymous_codes/admin/code_groups/index.html.erb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index dc94f42..b87854b 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -1,7 +1,9 @@
From 3385e986d7cf3f950a662bf1f2a706d0789536ef Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 19:29:26 +0200 Subject: [PATCH 13/56] add styles to icon_links --- .../anonymous_codes/admin/code_groups/index.html.erb | 8 ++++---- config/locales/en.yml | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index b87854b..d23eddd 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -2,7 +2,7 @@
@@ -27,9 +27,9 @@ <%= group.tokens.count %> <%= group.max_reuses %> - <%= icon "data-transfer-download", class: "action-icon--edit" %> - <%= icon "pencil", class: "action-icon--edit" %> - <%= icon "eye" %> + <%= icon_link_to "data-transfer-download", t("decidim.admin.actions.destroy"), method: :delete, class: "action-icon--remove", data: { confirm: t("decidim.admin.actions.confirm_destroy") } %> + <%= icon_link_to "pencil", edit_code_group_path(group), t("decidim.admin.actions.edit"), class: "action-icon--edit" %> + <%= icon_link_to "eye", t("decidim.admin.actions.preview"), class: "action-icon--preview" %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 7021ddb..1ecc27e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2,6 +2,11 @@ en: decidim: admin: + actions: + confirm_destroy: Are you sure you want to delete this %{name}? + destroy: Delete + edit: Edit + preview: Preview code_group: index: active: Active From 4973c30cf9ff947f487b4a7faacf739ba9d56720 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 19:47:43 +0200 Subject: [PATCH 14/56] add condition when migration is empty --- .../admin/code_groups/index.html.erb | 67 ++++++++++--------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index d23eddd..162f63c 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -6,35 +6,42 @@
-
- - - - - - - - - - - - - <% groups.each do |group| %> - - - - - - - - - <% end %> - -
<%= t("decidim.admin.code_group.index.title") %><%= t("decidim.admin.code_group.index.expires_at") %><%= t("decidim.admin.code_group.index.active") %><%= t("decidim.admin.code_group.index.num_of_tockens") %><%= t("decidim.admin.code_group.index.max_reuses") %>
<%= translated_attribute(group.title) %><%= l(group.expires_at, format: :decidim_short) %><%= t("booleans.#{group.active}") %><%= group.tokens.count %><%= group.max_reuses %> - <%= icon_link_to "data-transfer-download", t("decidim.admin.actions.destroy"), method: :delete, class: "action-icon--remove", data: { confirm: t("decidim.admin.actions.confirm_destroy") } %> - <%= icon_link_to "pencil", edit_code_group_path(group), t("decidim.admin.actions.edit"), class: "action-icon--edit" %> - <%= icon_link_to "eye", t("decidim.admin.actions.preview"), class: "action-icon--preview" %> -
-
+ <% if groups.any? %> +
+ + + + + + + + + + + + + <% groups.each do |group| %> + + + + + + + + + <% end %> + +
<%= t("decidim.admin.code_group.index.title") %><%= t("decidim.admin.code_group.index.expires_at") %><%= t("decidim.admin.code_group.index.active") %><%= t("decidim.admin.code_group.index.num_of_tockens") %><%= t("decidim.admin.code_group.index.max_reuses") %>
<%= translated_attribute(group.title) %><%= l(group.expires_at, format: :decidim_short) %><%= t("booleans.#{group.active}") %><%= group.tokens.count %><%= group.max_reuses %> + <%= icon_link_to "data-transfer-download", t("decidim.admin.actions.destroy"), method: :delete, class: "action-icon--remove", data: { confirm: t("decidim.admin.actions.confirm_destroy") } %> + <%= icon_link_to "pencil", edit_code_group_path(group), t("decidim.admin.actions.edit"), class: "action-icon--edit" %> + <%= icon_link_to "eye", t("decidim.admin.actions.preview"), class: "action-icon--preview" %> +
+
+ <% else %> +
+

No access code groups available.

+

Stert by adding an access code group from the "New access code group" button.

+
+ <% end %>
From 212188ef92ef4116ea85272a5b6346069a6caf41 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 20:13:22 +0200 Subject: [PATCH 15/56] add card title to edit and new views --- .../anonymous_codes/admin/code_groups_controller.rb | 6 ++++++ .../anonymous_codes/admin/code_groups/edit.html.erb | 8 ++++++++ .../anonymous_codes/admin/code_groups/index.html.erb | 4 ++-- .../anonymous_codes/admin/code_groups/new.html.erb | 8 ++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index 616d6e5..b5d99b3 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -12,6 +12,12 @@ def new; end def create; end + def edit; end + + def update; end + + def destroy; end + private def groups diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb index e69de29..6acedad 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb @@ -0,0 +1,8 @@ +
+
+

Edit access code groups

+
+
+ +
+
\ No newline at end of file diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 162f63c..0c6b031 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -28,8 +28,8 @@ <%= group.tokens.count %> <%= group.max_reuses %> - <%= icon_link_to "data-transfer-download", t("decidim.admin.actions.destroy"), method: :delete, class: "action-icon--remove", data: { confirm: t("decidim.admin.actions.confirm_destroy") } %> - <%= icon_link_to "pencil", edit_code_group_path(group), t("decidim.admin.actions.edit"), class: "action-icon--edit" %> + <%= icon_link_to "data-transfer-download", code_group_path(group.id), t("decidim.admin.actions.destroy"), method: :delete, class: "action-icon--remove", data: { confirm: t("decidim.admin.actions.confirm_destroy") } %> + <%= icon_link_to "pencil", edit_code_group_path(group.id), t("decidim.admin.actions.edit"), class: "action-icon--edit" %> <%= icon_link_to "eye", t("decidim.admin.actions.preview"), class: "action-icon--preview" %> diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb index e69de29..1b4a443 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb @@ -0,0 +1,8 @@ +
+
+

New access code groups

+
+
+ +
+
\ No newline at end of file From eede624684eb253ca46b9fd50e27aeaabf3cf54c Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 4 Apr 2024 21:13:30 +0200 Subject: [PATCH 16/56] update edit, form and new views --- .../admin/code_groups_controller.rb | 4 ++- .../anonymous_codes/admin/code_groups_form.rb | 20 ++++++++++++ .../admin/code_groups/_form.html.erb | 32 +++++++++++-------- .../admin/code_groups/edit.html.erb | 11 +++---- .../admin/code_groups/new.html.erb | 11 +++---- 5 files changed, 51 insertions(+), 27 deletions(-) create mode 100644 app/forms/decidim/anonymous_codes/admin/code_groups_form.rb diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index b5d99b3..8947494 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -8,7 +8,9 @@ class CodeGroupsController < ApplicationController def index; end - def new; end + def new + @form = form(CodeGroupsForm).instance + end def create; end diff --git a/app/forms/decidim/anonymous_codes/admin/code_groups_form.rb b/app/forms/decidim/anonymous_codes/admin/code_groups_form.rb new file mode 100644 index 0000000..6b3a85d --- /dev/null +++ b/app/forms/decidim/anonymous_codes/admin/code_groups_form.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module Decidim + module AnonymousCodes + module Admin + class CodeGroupsForm < Decidim::Form + include TranslatableAttributes + include TranslationsHelper + + translatable_attribute :title, String + attribute :expires_at, Decidim::Attributes::LocalizedDate + attribute :active, Boolean + attribute :max_reuses, Integer + + validates :expires_at, presence: true + validates :title, translatable_presence: true + end + end + end +end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb index 24f7d67..d879cbb 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb @@ -1,19 +1,23 @@ -
- <%= form.text_field :title, label: t(".title") %> -
+
+
+

Access code group

+
-
- <%= form.date_field :expires_at, label: t(".expires_at") %> -
+
+
+ <%= form.text_field :title, label: t(".title") %> +
-
- <%= form.check_box :active, label: t(".active") %> -
+
+ <%= form.date_field :expires_at, label: t(".expires_at") %> +
-
- <%= form.number_field :max_reuses, label: t(".max_reuses") %> -
+
+ <%= form.check_box :active, label: t(".active") %> +
-
- <%= form.text_field :title, label: t(".title") %> +
+ <%= form.number_field :max_reuses, label: t(".max_reuses") %> +
+
diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb index 6acedad..ffbd79c 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/edit.html.erb @@ -1,8 +1,7 @@ -
-
-

Edit access code groups

-
-
+<%= decidim_form_for(@form, html: { class: "form edit_code_group" }) do |f| %> + <%= render partial: "form", object: f, locals: { title: t(".title") } %> +
+ <%= f.submit "update" %>
-
\ No newline at end of file +<% end %> diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb index 1b4a443..d618d97 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb @@ -1,8 +1,7 @@ -
-
-

New access code groups

-
-
+<%= decidim_form_for(@form, html: { class: "form new_code_group" }) do |f| %> + <%= render partial: "form", object: f, locals: { title: t(".title") } %> +
+ <%= f.submit "create" %>
-
\ No newline at end of file +<% end %> From 3978cc2d09f7c61d68d7cc5d12a530c9d3940220 Mon Sep 17 00:00:00 2001 From: elviabth Date: Fri, 5 Apr 2024 10:59:13 +0200 Subject: [PATCH 17/56] add edit and new method to controller --- .../admin/code_groups_controller.rb | 8 +++++- .../admin/code_groups/index.html.erb | 12 ++++----- .../admin/code_groups/new.html.erb | 2 +- config/locales/en.yml | 25 +++++++++++++------ 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index 8947494..b133f77 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -14,7 +14,9 @@ def new def create; end - def edit; end + def edit + @form = form(CodeGroupsForm).from_model(code_group) + end def update; end @@ -25,6 +27,10 @@ def destroy; end def groups AnonymousCodes::Group.for(current_organization) end + + def code_group + @code_group ||= groups.find(params[:id]) + end end end end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 0c6b031..658ec2c 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -2,7 +2,7 @@
@@ -11,11 +11,11 @@ - - - - - + + + + + diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb index d618d97..44b1d8c 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/new.html.erb @@ -1,4 +1,4 @@ -<%= decidim_form_for(@form, html: { class: "form new_code_group" }) do |f| %> +<%= decidim_form_for(@form, url: code_groups_path, html: { class: "form new_code_group" }) do |f| %> <%= render partial: "form", object: f, locals: { title: t(".title") } %>
diff --git a/config/locales/en.yml b/config/locales/en.yml index 1ecc27e..1d0affe 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -7,18 +7,27 @@ en: destroy: Delete edit: Edit preview: Preview - code_group: - index: - active: Active - expires_at: Expires at - max_reuses: Re-use max - new_access_code_group_button: New access code group - num_of_tockens: Num. of Tockens - title: Title menu: anonymous_codes: Access Codes anonymous_codes: admin: + code_groups: + edit: + title: Edit access code group + form: + active: Active + expires_at: Expires At + max_reuses: Re-use max + title: Title + index: + active: Active + expires_at: Expires at + max_reuses: Re-use max + new_access_code_group_button: New access code group + num_of_tockens: Num. of Tockens + title: Title + new: + title: New access code group surveys_component_settings: callout: group_locked: This survey can only be answered by using a valid code. From d0ee388ec72c018577d971113a6f250fae808327 Mon Sep 17 00:00:00 2001 From: elviabth Date: Fri, 5 Apr 2024 11:41:32 +0200 Subject: [PATCH 18/56] change action delete icon --- .../decidim/anonymous_codes/admin/code_groups_form.rb | 7 +++---- .../anonymous_codes/admin/code_groups/_form.html.erb | 6 +++--- .../anonymous_codes/admin/code_groups/index.html.erb | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/forms/decidim/anonymous_codes/admin/code_groups_form.rb b/app/forms/decidim/anonymous_codes/admin/code_groups_form.rb index 6b3a85d..935c478 100644 --- a/app/forms/decidim/anonymous_codes/admin/code_groups_form.rb +++ b/app/forms/decidim/anonymous_codes/admin/code_groups_form.rb @@ -5,14 +5,13 @@ module AnonymousCodes module Admin class CodeGroupsForm < Decidim::Form include TranslatableAttributes - include TranslationsHelper translatable_attribute :title, String attribute :expires_at, Decidim::Attributes::LocalizedDate - attribute :active, Boolean - attribute :max_reuses, Integer + attribute :active, Boolean, default: true + attribute :max_reuses, Integer, default: 1 - validates :expires_at, presence: true + validates :max_reuses, presence: true validates :title, translatable_presence: true end end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb index d879cbb..531313f 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb @@ -1,15 +1,15 @@
-

Access code group

+

<%= title %>

- <%= form.text_field :title, label: t(".title") %> + <%= form.translated :text_field, :title, label: t(".title") %>
- <%= form.date_field :expires_at, label: t(".expires_at") %> + <%= form.datetime_field :expires_at, label: t(".expires_at") %>
diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 658ec2c..5f8628d 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -28,7 +28,7 @@
From 51755785e8a9600be873de1418c2fb03c4228df5 Mon Sep 17 00:00:00 2001 From: elviabth Date: Fri, 5 Apr 2024 12:49:13 +0200 Subject: [PATCH 19/56] add command and create method --- .../admin/create_code_group.rb | 40 +++++++++++++++++++ .../admin/code_groups_controller.rb | 20 ++++++++-- ...code_groups_form.rb => code_group_form.rb} | 2 +- config/locales/en.yml | 3 ++ 4 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 app/commands/decidim/anonymous_codes/admin/create_code_group.rb rename app/forms/decidim/anonymous_codes/admin/{code_groups_form.rb => code_group_form.rb} (91%) diff --git a/app/commands/decidim/anonymous_codes/admin/create_code_group.rb b/app/commands/decidim/anonymous_codes/admin/create_code_group.rb new file mode 100644 index 0000000..aabdabc --- /dev/null +++ b/app/commands/decidim/anonymous_codes/admin/create_code_group.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +module Decidim + module AnonymousCodes + module Admin + class CreateCodeGroup < Decidim::Command + def initialize(form, organization) + @form = form + @organization = organization + end + + def call + return broadcast(:invalid) if @form.invalid? + + transaction do + create_code_group + end + + broadcast(:ok) + end + + private + + attr_reader :code_group, :form + + def create_code_group + @code_group = Decidim.traceability.create!( + Group, + @form.current_user, + title: form.title, + expires_at: form.expires_at, + active: form.active, + max_reuses: form.max_reuses, + organization: @organization + ) + end + end + end + end +end diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index b133f77..698c2ea 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -9,13 +9,27 @@ class CodeGroupsController < ApplicationController def index; end def new - @form = form(CodeGroupsForm).instance + @form = form(CodeGroupForm).instance end - def create; end + def create + @form = form(CodeGroupForm).from_params(params) + + CreateCodeGroup.call(@form, current_organization) do + on(:ok) do + flash[:notice] = I18n.t("code_groups.create.success", scope: "decidim.anonymous_codes.admin") + redirect_to code_groups_path + end + + on(:invalid) do + flash.now[:alert] = I18n.t("code_groups.create.invalid", scope: "decidim.anonymous_codes.admin") + render action: "new" + end + end + end def edit - @form = form(CodeGroupsForm).from_model(code_group) + @form = form(CodeGroupForm).from_model(code_group) end def update; end diff --git a/app/forms/decidim/anonymous_codes/admin/code_groups_form.rb b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb similarity index 91% rename from app/forms/decidim/anonymous_codes/admin/code_groups_form.rb rename to app/forms/decidim/anonymous_codes/admin/code_group_form.rb index 935c478..2def49d 100644 --- a/app/forms/decidim/anonymous_codes/admin/code_groups_form.rb +++ b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb @@ -3,7 +3,7 @@ module Decidim module AnonymousCodes module Admin - class CodeGroupsForm < Decidim::Form + class CodeGroupForm < Decidim::Form include TranslatableAttributes translatable_attribute :title, String diff --git a/config/locales/en.yml b/config/locales/en.yml index 1d0affe..79e2546 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -12,6 +12,9 @@ en: anonymous_codes: admin: code_groups: + create: + invalid: There was a problem creating this access code group + success: Access code group successfully created edit: title: Edit access code group form: From a6a023878f907f176ec7605742ea13eb91368ff7 Mon Sep 17 00:00:00 2001 From: elviabth Date: Fri, 5 Apr 2024 13:30:53 +0200 Subject: [PATCH 20/56] add update command and update controller --- .../admin/update_code_group.rb | 39 +++++++++++++++++++ .../admin/code_groups_controller.rb | 16 +++++++- config/locales/en.yml | 3 ++ 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 app/commands/decidim/anonymous_codes/admin/update_code_group.rb diff --git a/app/commands/decidim/anonymous_codes/admin/update_code_group.rb b/app/commands/decidim/anonymous_codes/admin/update_code_group.rb new file mode 100644 index 0000000..4fc1068 --- /dev/null +++ b/app/commands/decidim/anonymous_codes/admin/update_code_group.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +module Decidim + module AnonymousCodes + module Admin + class UpdateCodeGroup < Decidim::Command + def initialize(form, code_group) + @form = form + @code_group = code_group + end + + def call + return broadcast(:invalid) if @form.invalid? + + transaction do + update_code_group + end + + broadcast(:ok, @code_group) + end + + private + + attr_reader :code_group, :form + + def update_code_group + Decidim.traceability.update!( + code_group, + form.current_user, + title: form.title, + expires_at: form.expires_at, + active: form.active, + max_reuses: form.max_reuses + ) + end + end + end + end +end diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index 698c2ea..3b88da8 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -32,7 +32,21 @@ def edit @form = form(CodeGroupForm).from_model(code_group) end - def update; end + def update + @form = form(CodeGroupForm).from_params(params) + + UpdateCodeGroup.call(@form, code_group) do + on(:ok) do + flash[:notice] = I18n.t("code_groups.update.success", scope: "decidim.anonymous_codes.admin") + redirect_to code_groups_path + end + + on(:invalid) do + flash.now[:alert] = I18n.t("code_groups.update.invalid", scope: "decidim.anonymous_codes.admin") + render action: "edit" + end + end + end def destroy; end diff --git a/config/locales/en.yml b/config/locales/en.yml index 79e2546..9739e6a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -31,6 +31,9 @@ en: title: Title new: title: New access code group + update: + invalid: There was a problem updating this access code group + success: Access code group successfully updated surveys_component_settings: callout: group_locked: This survey can only be answered by using a valid code. From 3e6d477165fb07de68281331950ba33d2ac8e919 Mon Sep 17 00:00:00 2001 From: elviabth Date: Fri, 5 Apr 2024 13:45:47 +0200 Subject: [PATCH 21/56] add destroy method --- .../anonymous_codes/admin/code_groups_controller.rb | 10 +++++++++- config/locales/en.yml | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index 3b88da8..a6958d4 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -48,7 +48,15 @@ def update end end - def destroy; end + def destroy + Decidim.traceability.perform_action!("delete", code_group, current_user) do + code_group.destroy! + end + + flash[:notice] = I18n.t("code_groups.destroy.success", scope: "decidim.anonymous_codes.admin") + + redirect_to code_groups_path + end private diff --git a/config/locales/en.yml b/config/locales/en.yml index 9739e6a..ddc2b57 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -15,6 +15,8 @@ en: create: invalid: There was a problem creating this access code group success: Access code group successfully created + destroy: + success: Access code group successfully destroyed edit: title: Edit access code group form: From c781002fdc9ac8fe592197e46ea3388b4a3af9a6 Mon Sep 17 00:00:00 2001 From: elviabth Date: Fri, 5 Apr 2024 14:40:06 +0200 Subject: [PATCH 22/56] refactor i18n variables --- .../admin/code_groups_controller.rb | 6 ++++- .../admin/code_groups/index.html.erb | 24 +++++++++---------- config/locales/en.yml | 19 ++++++++------- lib/decidim/anonymous_codes/admin_engine.rb | 2 +- 4 files changed, 28 insertions(+), 23 deletions(-) diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index a6958d4..28237f0 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -4,7 +4,7 @@ module Decidim module AnonymousCodes module Admin class CodeGroupsController < ApplicationController - helper_method :groups + helper_method :groups, :resource_path def index; end @@ -67,6 +67,10 @@ def groups def code_group @code_group ||= groups.find(params[:id]) end + + def resource_path + "#" + end end end end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 5f8628d..044ceb8 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -1,8 +1,8 @@
@@ -11,11 +11,11 @@
<%= t("decidim.admin.code_group.index.title") %><%= t("decidim.admin.code_group.index.expires_at") %><%= t("decidim.admin.code_group.index.active") %><%= t("decidim.admin.code_group.index.num_of_tockens") %><%= t("decidim.admin.code_group.index.max_reuses") %><%= t("decidim.anonymous_codes.admin.code_groups.index.title") %><%= t("decidim.anonymous_codes.admin.code_groups.index.expires_at") %><%= t("decidim.anonymous_codes.admin.code_groups.index.active") %><%= t("decidim.anonymous_codes.admin.code_groups.index.num_of_tockens") %><%= t("decidim.anonymous_codes.admin.code_groups.index.max_reuses") %>
<%= group.tokens.count %> <%= group.max_reuses %> - <%= icon_link_to "data-transfer-download", code_group_path(group.id), t("decidim.admin.actions.destroy"), method: :delete, class: "action-icon--remove", data: { confirm: t("decidim.admin.actions.confirm_destroy") } %> + <%= icon_link_to "circle-x", code_group_path(group.id), t("decidim.admin.actions.destroy"), method: :delete, class: "action-icon--remove", data: { confirm: t("decidim.admin.actions.confirm_destroy") } %> <%= icon_link_to "pencil", edit_code_group_path(group.id), t("decidim.admin.actions.edit"), class: "action-icon--edit" %> <%= icon_link_to "eye", t("decidim.admin.actions.preview"), class: "action-icon--preview" %>
- - - - - + + + + + @@ -28,9 +28,9 @@ <% end %> @@ -39,8 +39,8 @@ <% else %>
-

No access code groups available.

-

Stert by adding an access code group from the "New access code group" button.

+ <%= t("code_groups.index.no_access_code_groups_records", scope: "decidim.anonymous_codes.admin") %> +

<%= t("code_groups.index.start_by", scope: "decidim.anonymous_codes.admin", button: link_to(t("code_groups.index.new_access_code_group_button", scope: "decidim.anonymous_codes.admin"), new_code_group_path)) %>

<% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index ddc2b57..04fe04f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,16 +1,13 @@ --- en: decidim: - admin: - actions: - confirm_destroy: Are you sure you want to delete this %{name}? - destroy: Delete - edit: Edit - preview: Preview - menu: - anonymous_codes: Access Codes anonymous_codes: admin: + actions: + confirm_destroy: Are you sure you want to delete this access code group? + destroy: Delete + edit: Edit + preview: Preview code_groups: create: invalid: There was a problem creating this access code group @@ -27,15 +24,19 @@ en: index: active: Active expires_at: Expires at + header_table_title: Title max_reuses: Re-use max new_access_code_group_button: New access code group + no_access_code_groups_records: No access code groups available. num_of_tockens: Num. of Tockens - title: Title + start_by: Start by adding an access code group from the "%{button}" button. + title: Access code groups new: title: New access code group update: invalid: There was a problem updating this access code group success: Access code group successfully updated + menu_title: Access Codes surveys_component_settings: callout: group_locked: This survey can only be answered by using a valid code. diff --git a/lib/decidim/anonymous_codes/admin_engine.rb b/lib/decidim/anonymous_codes/admin_engine.rb index bd1b889..db4b174 100644 --- a/lib/decidim/anonymous_codes/admin_engine.rb +++ b/lib/decidim/anonymous_codes/admin_engine.rb @@ -28,7 +28,7 @@ def load_seed initializer "decidim-anonymous_codes.admin_menu" do Decidim.menu :admin_menu do |menu| menu.add_item :anonymous_codes_menu, - I18n.t("menu.anonymous_codes", scope: "decidim.admin"), + I18n.t("menu_title", scope: "decidim.anonymous_codes.admin"), decidim_admin_anonymous_codes.code_groups_path, icon_name: "hard-drive", position: 7.5, From 533bfb4064e2a824b1a48050bec17509ba827e23 Mon Sep 17 00:00:00 2001 From: elviabth Date: Mon, 8 Apr 2024 11:31:59 +0200 Subject: [PATCH 23/56] configure action preview --- .../decidim/anonymous_codes/admin/code_groups_controller.rb | 6 ++++-- .../anonymous_codes/admin/code_groups/index.html.erb | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index 28237f0..c6afebd 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -68,8 +68,10 @@ def code_group @code_group ||= groups.find(params[:id]) end - def resource_path - "#" + def resource_path(group) + return nil unless group.resource + + Decidim::ResourceLocatorPresenter.new(group.resource).path end end end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 044ceb8..c9f4ccb 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -30,7 +30,7 @@ <% end %> From 8cebf58044f17cb0778338fe7647e00b2633387b Mon Sep 17 00:00:00 2001 From: elviabth Date: Mon, 8 Apr 2024 11:41:09 +0200 Subject: [PATCH 24/56] add pagination --- .../decidim/anonymous_codes/admin/code_groups_controller.rb | 5 ++++- .../decidim/anonymous_codes/admin/code_groups/index.html.erb | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index c6afebd..36bf5ba 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -4,9 +4,12 @@ module Decidim module AnonymousCodes module Admin class CodeGroupsController < ApplicationController + include Decidim::Admin::Paginable helper_method :groups, :resource_path - def index; end + def index + @groups = paginate(groups.order(created_at: :desc)) + end def new @form = form(CodeGroupForm).instance diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index c9f4ccb..866422b 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -6,7 +6,7 @@
- <% if groups.any? %> + <% if @groups.any? %>
<%= t("decidim.anonymous_codes.admin.code_groups.index.title") %><%= t("decidim.anonymous_codes.admin.code_groups.index.expires_at") %><%= t("decidim.anonymous_codes.admin.code_groups.index.active") %><%= t("decidim.anonymous_codes.admin.code_groups.index.num_of_tockens") %><%= t("decidim.anonymous_codes.admin.code_groups.index.max_reuses") %><%= t("code_groups.index.header_table_title", scope: "decidim.anonymous_codes.admin") %><%= t("code_groups.index.expires_at", scope: "decidim.anonymous_codes.admin") %><%= t("code_groups.index.active", scope: "decidim.anonymous_codes.admin") %><%= t("code_groups.index.num_of_tockens", scope: "decidim.anonymous_codes.admin") %><%= t("code_groups.index.max_reuses", scope: "decidim.anonymous_codes.admin") %>
<%= group.tokens.count %> <%= group.max_reuses %> - <%= icon_link_to "circle-x", code_group_path(group.id), t("decidim.admin.actions.destroy"), method: :delete, class: "action-icon--remove", data: { confirm: t("decidim.admin.actions.confirm_destroy") } %> - <%= icon_link_to "pencil", edit_code_group_path(group.id), t("decidim.admin.actions.edit"), class: "action-icon--edit" %> - <%= icon_link_to "eye", t("decidim.admin.actions.preview"), class: "action-icon--preview" %> + <%= icon_link_to "circle-x", code_group_path(group.id), t("actions.destroy", scope: "decidim.anonymous_codes.admin"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.anonymous_codes.admin") } %> + <%= icon_link_to "pencil", edit_code_group_path(group.id), t("actions.edit", scope: "decidim.anonymous_codes.admin"), class: "action-icon--edit" %> + <%= icon_link_to "eye", t("actions.preview", scope: "decidim.anonymous_codes.admin"), class: "action-icon--preview" %>
<%= icon_link_to "circle-x", code_group_path(group.id), t("actions.destroy", scope: "decidim.anonymous_codes.admin"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.anonymous_codes.admin") } %> <%= icon_link_to "pencil", edit_code_group_path(group.id), t("actions.edit", scope: "decidim.anonymous_codes.admin"), class: "action-icon--edit" %> - <%= icon_link_to "eye", t("actions.preview", scope: "decidim.anonymous_codes.admin"), class: "action-icon--preview" %> + <%= icon_link_to "eye", resource_path(group), t("actions.preview", scope: "decidim.anonymous_codes.admin"), class: "action-icon--preview#{group.resource} ? '':' invisible'", target: :_blank %>
@@ -36,6 +36,7 @@ <% end %>
+ <%= paginate @groups, theme: "decidim" %>
<% else %>
From f7f32f71276c9d79ec04b7733fce9227ef1456ba Mon Sep 17 00:00:00 2001 From: elviabth Date: Mon, 8 Apr 2024 16:30:33 +0200 Subject: [PATCH 25/56] add command specs --- .../admin/code_groups/index.html.erb | 26 +++---- spec/commands/admin/create_code_group_spec.rb | 25 +++++++ spec/commands/admin/update_code_group_spec.rb | 71 +++++++++++++++++++ 3 files changed, 109 insertions(+), 13 deletions(-) create mode 100644 spec/commands/admin/create_code_group_spec.rb create mode 100644 spec/commands/admin/update_code_group_spec.rb diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 866422b..696aa37 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -20,19 +20,19 @@ - <% groups.each do |group| %> - - <%= translated_attribute(group.title) %> - <%= l(group.expires_at, format: :decidim_short) %> - <%= t("booleans.#{group.active}") %> - <%= group.tokens.count %> - <%= group.max_reuses %> - - <%= icon_link_to "circle-x", code_group_path(group.id), t("actions.destroy", scope: "decidim.anonymous_codes.admin"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.anonymous_codes.admin") } %> - <%= icon_link_to "pencil", edit_code_group_path(group.id), t("actions.edit", scope: "decidim.anonymous_codes.admin"), class: "action-icon--edit" %> - <%= icon_link_to "eye", resource_path(group), t("actions.preview", scope: "decidim.anonymous_codes.admin"), class: "action-icon--preview#{group.resource} ? '':' invisible'", target: :_blank %> - - + <% groups.each do |group| %> + + <%= translated_attribute(group.title) %> + <%= l(group.expires_at, format: :decidim_short) %> + <%= t("booleans.#{group.active}") %> + <%= group.tokens.count %> + <%= group.max_reuses %> + + <%= icon_link_to "circle-x", code_group_path(group.id), t("actions.destroy", scope: "decidim.anonymous_codes.admin"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.anonymous_codes.admin") } %> + <%= icon_link_to "pencil", edit_code_group_path(group.id), t("actions.edit", scope: "decidim.anonymous_codes.admin"), class: "action-icon--edit" %> + <%= icon_link_to "eye", resource_path(group), t("actions.preview", scope: "decidim.anonymous_codes.admin"), class: "action-icon--preview#{group.resource} ? '':' invisible'", target: :_blank %> + + <% end %> diff --git a/spec/commands/admin/create_code_group_spec.rb b/spec/commands/admin/create_code_group_spec.rb new file mode 100644 index 0000000..c0035d3 --- /dev/null +++ b/spec/commands/admin/create_code_group_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require "spec_helper" + +module Decidim + module AnonymousCodes + describe Group, type: :model do + let(:current_organization) { create(:organization) } + + describe "#create" do + it "creates a code group successfully" do + code_group = Decidim::AnonymousCodes::Group.create( + title: "Sample Code Group", + expires_at: 10.days.from_now, + active: true, + max_reuses: 10, + organization: current_organization + ) + + expect(code_group).to be_valid + end + end + end + end +end diff --git a/spec/commands/admin/update_code_group_spec.rb b/spec/commands/admin/update_code_group_spec.rb new file mode 100644 index 0000000..7542d5f --- /dev/null +++ b/spec/commands/admin/update_code_group_spec.rb @@ -0,0 +1,71 @@ +# frozen_string_literal: true + +require "spec_helper" + +module Decidim + module AnonymousCodes + module Admin + describe UpdateCodeGroup do + let(:current_organization) { create(:organization) } + let(:current_user) { create(:user, :confirmed, :admin, organization: current_organization) } + let(:code_group) do + Decidim::AnonymousCodes::Group.create( + title: "Sample Code Group", + expires_at: 10.days.from_now, + active: true, + max_reuses: 10, + organization: current_organization + ) + end + let(:form) do + CodeGroupForm.new( + title: "New Title", + expires_at: code_group.expires_at, + active: code_group.active, + max_reuses: code_group.max_reuses + ) + end + + subject { described_class.new(form, code_group) } + + describe "#call" do + context "when the form is valid" do + it "updates the code group" do + expect(Decidim.traceability).to receive(:update!).with( + code_group, + current_user, + title: form.title, + expires_at: form.expires_at, + active: form.active, + max_reuses: form.max_reuses + ) + + subject.call + end + + it "broadcasts :ok with the updated code group" do + expect(subject).to receive(:broadcast).with(:ok, code_group) + subject.call + end + end + + context "when the form is invalid" do + before do + allow(form).to receive(:invalid?).and_return(true) + end + + it "does not update the code group" do + expect(Decidim.traceability).not_to receive(:update!) + subject.call + end + + it "broadcasts :invalid" do + expect(subject).to receive(:broadcast).with(:invalid) + subject.call + end + end + end + end + end + end +end From 057b69d3b0073b2521a98f85c445c8a6c22bfa0a Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 11:24:01 +0200 Subject: [PATCH 26/56] add controller spec --- .../admin/codes_groups_controller_spec.rb | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 spec/controller/admin/codes_groups_controller_spec.rb diff --git a/spec/controller/admin/codes_groups_controller_spec.rb b/spec/controller/admin/codes_groups_controller_spec.rb new file mode 100644 index 0000000..c601e1e --- /dev/null +++ b/spec/controller/admin/codes_groups_controller_spec.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +require "spec_helper" + +module Decidim + module AnonymousCodes + module Admin + describe CodeGroupsController, type: :controller do + routes { Decidim::AnonymousCodes::AdminEngine.routes } + let(:current_user) { create(:user, :confirmed, :admin, organization: current_organization) } + let(:current_organization) { create(:organization) } + + before do + request.env["decidim.current_organization"] = current_organization + sign_in current_user + end + + describe "GET #index" do + it "assigns @groups and renders the index template" do + group = Decidim::AnonymousCodes::Group.create( + title: "Sample Group", + expires_at: 1.day.from_now, + active: true, + max_reuses: 10, + organization: current_organization + ) + + get :index + expect(assigns(:groups)).to eq([group]) + expect(response).to render_template("index") + end + end + + describe "GET #new" do + it "assigns a new form and renders the new template" do + get :new + expect(assigns(:form)).to be_a(CodeGroupForm) + expect(response).to render_template("new") + end + end + end + end + end +end From a61a1cb0445defcc8bedb08d18f7ddf7ec242344 Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 12:15:47 +0200 Subject: [PATCH 27/56] test create, edit and update controller methods --- .../admin/codes_groups_controller_spec.rb | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/spec/controller/admin/codes_groups_controller_spec.rb b/spec/controller/admin/codes_groups_controller_spec.rb index c601e1e..76ce4d7 100644 --- a/spec/controller/admin/codes_groups_controller_spec.rb +++ b/spec/controller/admin/codes_groups_controller_spec.rb @@ -12,7 +12,7 @@ module Admin before do request.env["decidim.current_organization"] = current_organization - sign_in current_user + sign_in current_user, scope: :user end describe "GET #index" do @@ -38,6 +38,43 @@ module Admin expect(response).to render_template("new") end end + + describe "POST #create" do + it "creates a new code group" do + expect do + post :create, params: { title: "New Group", expires_at: 1.day.from_now, active: true, max_reuses: 10 } + end.to change(Decidim::AnonymousCodes::Group, :count).by(1) + expect(response).to redirect_to(code_groups_path) + expect(flash[:notice]).to eq(I18n.t("code_groups.create.success", scope: "decidim.anonymous_codes.admin")) + end + end + + context "when updating a group" do + let(:current_organization) { create(:organization) } + let(:group) do + Decidim::AnonymousCodes::Group.create( + title: "Sample Group", + expires_at: 1.day.from_now, + active: true, + max_reuses: 10, + organization: current_organization + ) + end + + it "assigns the requested group to @group and renders the edit template" do + get :edit, params: { id: group.id } + expect(assigns(:code_group)).to eq(group) + expect(response).to render_template("edit") + end + + it "updates the group" do + put :update, params: { id: group.id, title: "Updated Group" } + group.reload + expect(group.title).to eq("Updated Group") + expect(response).to redirect_to(code_groups_path) + expect(flash[:notice]).to eq(I18n.t("code_groups.update.success", scope: "decidim.anonymous_codes.admin")) + end + end end end end From e71bb33378effd2cec3c6e983a58e046adfd12f7 Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 13:58:03 +0200 Subject: [PATCH 28/56] add system access_code_group_spec --- .../admin/create_code_group.rb | 9 +++-- .../admin/code_groups_controller.rb | 4 +-- .../admin/code_groups/index.html.erb | 2 +- spec/system/admin/access_code_groups_spec.rb | 35 +++++++++++++++++++ 4 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 spec/system/admin/access_code_groups_spec.rb diff --git a/app/commands/decidim/anonymous_codes/admin/create_code_group.rb b/app/commands/decidim/anonymous_codes/admin/create_code_group.rb index aabdabc..9e03d9f 100644 --- a/app/commands/decidim/anonymous_codes/admin/create_code_group.rb +++ b/app/commands/decidim/anonymous_codes/admin/create_code_group.rb @@ -4,16 +4,15 @@ module Decidim module AnonymousCodes module Admin class CreateCodeGroup < Decidim::Command - def initialize(form, organization) + def initialize(form) @form = form - @organization = organization end def call return broadcast(:invalid) if @form.invalid? transaction do - create_code_group + create_code_group! end broadcast(:ok) @@ -23,7 +22,7 @@ def call attr_reader :code_group, :form - def create_code_group + def create_code_group! @code_group = Decidim.traceability.create!( Group, @form.current_user, @@ -31,7 +30,7 @@ def create_code_group expires_at: form.expires_at, active: form.active, max_reuses: form.max_reuses, - organization: @organization + organization: form.context.current_organization ) end end diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index 36bf5ba..f217de4 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -18,7 +18,7 @@ def new def create @form = form(CodeGroupForm).from_params(params) - CreateCodeGroup.call(@form, current_organization) do + CreateCodeGroup.call(@form) do on(:ok) do flash[:notice] = I18n.t("code_groups.create.success", scope: "decidim.anonymous_codes.admin") redirect_to code_groups_path @@ -72,7 +72,7 @@ def code_group end def resource_path(group) - return nil unless group.resource + return nil unless group&.resource Decidim::ResourceLocatorPresenter.new(group.resource).path end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 696aa37..de79c99 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -30,7 +30,7 @@ <%= icon_link_to "circle-x", code_group_path(group.id), t("actions.destroy", scope: "decidim.anonymous_codes.admin"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.anonymous_codes.admin") } %> <%= icon_link_to "pencil", edit_code_group_path(group.id), t("actions.edit", scope: "decidim.anonymous_codes.admin"), class: "action-icon--edit" %> - <%= icon_link_to "eye", resource_path(group), t("actions.preview", scope: "decidim.anonymous_codes.admin"), class: "action-icon--preview#{group.resource} ? '':' invisible'", target: :_blank %> + <%= icon_link_to "eye", resource_path(group), t("actions.preview", scope: "decidim.anonymous_codes.admin"), class: "action-icon--preview#{group&.resource} ? '':' invisible'", target: :_blank %> <% end %> diff --git a/spec/system/admin/access_code_groups_spec.rb b/spec/system/admin/access_code_groups_spec.rb new file mode 100644 index 0000000..bdab801 --- /dev/null +++ b/spec/system/admin/access_code_groups_spec.rb @@ -0,0 +1,35 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe "Access codes admin menu", type: :system do + let(:organization) { create(:organization) } + let(:user) { create :user, :admin, :confirmed, organization: organization } + + before do + switch_to_host(organization.host) + login_as user, scope: :user + end + + it "adds a new access code group" do + visit decidim_admin_anonymous_codes.code_groups_path + + click_on "New access code group" + + fill_in_i18n( + :code_group_title, + "#code_group-title-tabs", + en: "New Group", + es: "NuevoGrupo", + ca: "Nou group" + ) + fill_in "Expires At", with: (Date.today + 1.day).strftime("%d/%m/%Y %H:%M") + check "Active" + fill_in "Re-use max", with: 10 + + click_on "create" + + expect(page).to have_content("Access code group successfully created") + expect(page).to have_content("New access code group") + end +end From 84ebcfc7202f8207b9bf03627697e53edd4b05d4 Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 14:00:13 +0200 Subject: [PATCH 29/56] replace Date.today for Time.zone.today in spec --- spec/system/admin/access_code_groups_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/system/admin/access_code_groups_spec.rb b/spec/system/admin/access_code_groups_spec.rb index bdab801..db5585b 100644 --- a/spec/system/admin/access_code_groups_spec.rb +++ b/spec/system/admin/access_code_groups_spec.rb @@ -23,7 +23,7 @@ es: "NuevoGrupo", ca: "Nou group" ) - fill_in "Expires At", with: (Date.today + 1.day).strftime("%d/%m/%Y %H:%M") + fill_in "Expires At", with: (Time.zone.today + 1.day).strftime("%d/%m/%Y %H:%M") check "Active" fill_in "Re-use max", with: 10 From 5d99afa132a92a59c110376afbad5f22b7b6135b Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 14:16:11 +0200 Subject: [PATCH 30/56] update num of tockens in view --- .../decidim/anonymous_codes/admin/code_groups/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index de79c99..8c74a07 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -25,7 +25,7 @@ <%= translated_attribute(group.title) %> <%= l(group.expires_at, format: :decidim_short) %> <%= t("booleans.#{group.active}") %> - <%= group.tokens.count %> + <%= group.tokens_count %> <%= group.max_reuses %> <%= icon_link_to "circle-x", code_group_path(group.id), t("actions.destroy", scope: "decidim.anonymous_codes.admin"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.anonymous_codes.admin") } %> From 92a0e775e3b144ec31cb040f073a2baf15f74615 Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 14:21:39 +0200 Subject: [PATCH 31/56] add validations to codegroupform --- app/forms/decidim/anonymous_codes/admin/code_group_form.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/forms/decidim/anonymous_codes/admin/code_group_form.rb b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb index 2def49d..5d2e159 100644 --- a/app/forms/decidim/anonymous_codes/admin/code_group_form.rb +++ b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb @@ -11,8 +11,9 @@ class CodeGroupForm < Decidim::Form attribute :active, Boolean, default: true attribute :max_reuses, Integer, default: 1 - validates :max_reuses, presence: true validates :title, translatable_presence: true + validates :expires_at, date: { after: Date.current }, if: ->(form) { form.expires_at.present? } + validates :max_reuses, presence: true, numericality: { only_integer: true, greater_than: 0 } end end end From 472559a2d099de3602f723ce80936e700d52ce1b Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 15:08:43 +0200 Subject: [PATCH 32/56] refactor create_code_group_spec --- spec/commands/admin/create_code_group_spec.rb | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/spec/commands/admin/create_code_group_spec.rb b/spec/commands/admin/create_code_group_spec.rb index c0035d3..3b3946b 100644 --- a/spec/commands/admin/create_code_group_spec.rb +++ b/spec/commands/admin/create_code_group_spec.rb @@ -4,20 +4,22 @@ module Decidim module AnonymousCodes - describe Group, type: :model do - let(:current_organization) { create(:organization) } + module Admin + describe Group, type: :model do + let(:current_organization) { create(:organization) } - describe "#create" do - it "creates a code group successfully" do - code_group = Decidim::AnonymousCodes::Group.create( - title: "Sample Code Group", - expires_at: 10.days.from_now, - active: true, - max_reuses: 10, - organization: current_organization - ) + describe "#create" do + it "creates a code group successfully" do + code_group = Decidim::AnonymousCodes::Group.create( + title: "Sample Code Group", + expires_at: 10.days.from_now, + active: true, + max_reuses: 10, + organization: current_organization + ) - expect(code_group).to be_valid + expect(code_group).to be_valid + end end end end From 81950299f6fc547fc41f0fa2a6e3baf6223ab4ad Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 15:16:35 +0200 Subject: [PATCH 33/56] save refactored command test --- spec/commands/admin/create_code_group_spec.rb | 47 ++++++++++++++----- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/spec/commands/admin/create_code_group_spec.rb b/spec/commands/admin/create_code_group_spec.rb index 3b3946b..9b89fae 100644 --- a/spec/commands/admin/create_code_group_spec.rb +++ b/spec/commands/admin/create_code_group_spec.rb @@ -5,20 +5,45 @@ module Decidim module AnonymousCodes module Admin - describe Group, type: :model do + describe CreateCodeGroup do let(:current_organization) { create(:organization) } + let(:current_user) { create(:user, :confirmed, :admin, organization: current_organization) } + let(:form_params) do + { + title: "Sample Title", + expires_at: 1.day.from_now, + active: true, + max_reuses: 10 + } + end + let(:form) do + CodeGroupForm.from_params( + form_params + ).with_context( + current_organization: current_organization + ) + end + let(:command) { described_class.new(form) } + + describe "when the form is invalid" do + before do + allow(form).to receive(:invalid?).and_return(true) + end - describe "#create" do - it "creates a code group successfully" do - code_group = Decidim::AnonymousCodes::Group.create( - title: "Sample Code Group", - expires_at: 10.days.from_now, - active: true, - max_reuses: 10, - organization: current_organization - ) + it "broadcasts invalid" do + expect { command.call }.to broadcast(:invalid) + end + + it "doesn't create questionnaire answers" do + expect do + command.call + end.not_to change(Group, :count) + end + end - expect(code_group).to be_valid + describe "when the form is valid" do + it "broadcasts ok" do + expect { command.call }.to broadcast(:ok) end end end From 510ce624e42b91259c270293dbc070468ded66f5 Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 15:45:27 +0200 Subject: [PATCH 34/56] refactor update_code_group_spec --- spec/commands/admin/update_code_group_spec.rb | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/spec/commands/admin/update_code_group_spec.rb b/spec/commands/admin/update_code_group_spec.rb index 7542d5f..46f08c0 100644 --- a/spec/commands/admin/update_code_group_spec.rb +++ b/spec/commands/admin/update_code_group_spec.rb @@ -8,44 +8,42 @@ module Admin describe UpdateCodeGroup do let(:current_organization) { create(:organization) } let(:current_user) { create(:user, :confirmed, :admin, organization: current_organization) } - let(:code_group) do - Decidim::AnonymousCodes::Group.create( + let(:form_params) do + { title: "Sample Code Group", expires_at: 10.days.from_now, active: true, - max_reuses: 10, - organization: current_organization - ) + max_reuses: 10 + } end let(:form) do - CodeGroupForm.new( - title: "New Title", - expires_at: code_group.expires_at, - active: code_group.active, - max_reuses: code_group.max_reuses + CodeGroupForm.from_params( + form_params + ).with_context( + current_organization: current_organization ) end - - subject { described_class.new(form, code_group) } + let(:code_group) do + Decidim::AnonymousCodes::Group.create( + title: "Sample Code Group", + expires_at: 5.days.from_now, + active: true, + max_reuses: 5, + organization: current_organization + ) + end + let(:command) { described_class.new(form, code_group) } describe "#call" do context "when the form is valid" do it "updates the code group" do - expect(Decidim.traceability).to receive(:update!).with( - code_group, - current_user, - title: form.title, - expires_at: form.expires_at, - active: form.active, - max_reuses: form.max_reuses - ) - - subject.call + command.call + expect(translated(code_group.title)).to eq("Sample Code Group") end it "broadcasts :ok with the updated code group" do - expect(subject).to receive(:broadcast).with(:ok, code_group) - subject.call + expect(command).to receive(:broadcast).with(:ok, code_group) + command.call end end @@ -56,12 +54,12 @@ module Admin it "does not update the code group" do expect(Decidim.traceability).not_to receive(:update!) - subject.call + command.call end it "broadcasts :invalid" do - expect(subject).to receive(:broadcast).with(:invalid) - subject.call + expect(command).to receive(:broadcast).with(:invalid) + command.call end end end From d510addaf17a6a275d3836acc34320a76c8187c5 Mon Sep 17 00:00:00 2001 From: elviabth Date: Tue, 9 Apr 2024 16:17:30 +0200 Subject: [PATCH 35/56] test edit case added to system spec --- spec/system/admin/access_code_groups_spec.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/system/admin/access_code_groups_spec.rb b/spec/system/admin/access_code_groups_spec.rb index db5585b..5aa77a1 100644 --- a/spec/system/admin/access_code_groups_spec.rb +++ b/spec/system/admin/access_code_groups_spec.rb @@ -31,5 +31,22 @@ expect(page).to have_content("Access code group successfully created") expect(page).to have_content("New access code group") + + click_link "Edit" + fill_in_i18n( + :code_group_title, + "#code_group-title-tabs", + en: "My new Group", + es: "Mi nuevo Grupo", + ca: "El meu nou Group" + ) + fill_in "Re-use max", with: 2 + + click_on "update" + + expect(page).to have_content("Access code group successfully updated") + within "table" do + expect(page).to have_content("My new Group") + end end end From aecbe7af3a1502a1ffd006a36ff3dc4e96e705db Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 10 Apr 2024 12:01:19 +0200 Subject: [PATCH 36/56] refactor create_code_group command --- .../decidim/anonymous_codes/admin/create_code_group.rb | 4 ++-- spec/commands/admin/create_code_group_spec.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/commands/decidim/anonymous_codes/admin/create_code_group.rb b/app/commands/decidim/anonymous_codes/admin/create_code_group.rb index 9e03d9f..36ced64 100644 --- a/app/commands/decidim/anonymous_codes/admin/create_code_group.rb +++ b/app/commands/decidim/anonymous_codes/admin/create_code_group.rb @@ -9,7 +9,7 @@ def initialize(form) end def call - return broadcast(:invalid) if @form.invalid? + return broadcast(:invalid) if form.invalid? transaction do create_code_group! @@ -25,7 +25,7 @@ def call def create_code_group! @code_group = Decidim.traceability.create!( Group, - @form.current_user, + form.current_user, title: form.title, expires_at: form.expires_at, active: form.active, diff --git a/spec/commands/admin/create_code_group_spec.rb b/spec/commands/admin/create_code_group_spec.rb index 9b89fae..08796e9 100644 --- a/spec/commands/admin/create_code_group_spec.rb +++ b/spec/commands/admin/create_code_group_spec.rb @@ -43,7 +43,7 @@ module Admin describe "when the form is valid" do it "broadcasts ok" do - expect { command.call }.to broadcast(:ok) + expect { command.call }.to change(Group, :count).by(1).and broadcast(:ok) end end end From 5cd407d9c6f1b300edf68026630ec23b0ebb4898 Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 10 Apr 2024 12:20:15 +0200 Subject: [PATCH 37/56] refactor update_code_group_spec --- spec/commands/admin/create_code_group_spec.rb | 4 +++- spec/commands/admin/update_code_group_spec.rb | 12 ++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/spec/commands/admin/create_code_group_spec.rb b/spec/commands/admin/create_code_group_spec.rb index 08796e9..f1be537 100644 --- a/spec/commands/admin/create_code_group_spec.rb +++ b/spec/commands/admin/create_code_group_spec.rb @@ -10,7 +10,9 @@ module Admin let(:current_user) { create(:user, :confirmed, :admin, organization: current_organization) } let(:form_params) do { - title: "Sample Title", + title_en: "Sample Title", + title_ca: "Títol de la mostra", + title_es: "Titulo de ejemplo", expires_at: 1.day.from_now, active: true, max_reuses: 10 diff --git a/spec/commands/admin/update_code_group_spec.rb b/spec/commands/admin/update_code_group_spec.rb index 46f08c0..be0d1b6 100644 --- a/spec/commands/admin/update_code_group_spec.rb +++ b/spec/commands/admin/update_code_group_spec.rb @@ -10,7 +10,9 @@ module Admin let(:current_user) { create(:user, :confirmed, :admin, organization: current_organization) } let(:form_params) do { - title: "Sample Code Group", + title_en: "Sample Code Group", + title_ca: "Grup de codis de mostra", + title_es: "Muestra de Códigos de Grupo", expires_at: 10.days.from_now, active: true, max_reuses: 10 @@ -24,13 +26,7 @@ module Admin ) end let(:code_group) do - Decidim::AnonymousCodes::Group.create( - title: "Sample Code Group", - expires_at: 5.days.from_now, - active: true, - max_reuses: 5, - organization: current_organization - ) + create(:anonymous_codes_group, expires_at: 5.days.from_now, active: true, max_reuses: 5, organization: current_organization) end let(:command) { described_class.new(form, code_group) } From 8d81df74e6d0f08c5a52c3dedb6496f0a9254d1f Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 10 Apr 2024 12:40:56 +0200 Subject: [PATCH 38/56] add checks to access_code_groups_spec --- spec/controller/admin/codes_groups_controller_spec.rb | 10 ++-------- spec/system/admin/access_code_groups_spec.rb | 2 ++ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/spec/controller/admin/codes_groups_controller_spec.rb b/spec/controller/admin/codes_groups_controller_spec.rb index 76ce4d7..b54d19e 100644 --- a/spec/controller/admin/codes_groups_controller_spec.rb +++ b/spec/controller/admin/codes_groups_controller_spec.rb @@ -16,15 +16,9 @@ module Admin end describe "GET #index" do - it "assigns @groups and renders the index template" do - group = Decidim::AnonymousCodes::Group.create( - title: "Sample Group", - expires_at: 1.day.from_now, - active: true, - max_reuses: 10, - organization: current_organization - ) + let!(:group) { create(:anonymous_codes_group, expires_at: 1.day.from_now, active: true, max_reuses: 10, organization: current_organization) } + it "assigns @groups and renders the index template" do get :index expect(assigns(:groups)).to eq([group]) expect(response).to render_template("index") diff --git a/spec/system/admin/access_code_groups_spec.rb b/spec/system/admin/access_code_groups_spec.rb index 5aa77a1..0e3d27b 100644 --- a/spec/system/admin/access_code_groups_spec.rb +++ b/spec/system/admin/access_code_groups_spec.rb @@ -31,6 +31,8 @@ expect(page).to have_content("Access code group successfully created") expect(page).to have_content("New access code group") + last_group = Decidim::AnonymousCodes::Group.last + expect(last_group.title["en"]).to eq("New Group") click_link "Edit" fill_in_i18n( From eef32b9b792bbd311f194ea372550756a491d02e Mon Sep 17 00:00:00 2001 From: elviabth Date: Wed, 10 Apr 2024 13:05:04 +0200 Subject: [PATCH 39/56] refactor call command method --- .../decidim/anonymous_codes/admin/update_code_group.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/commands/decidim/anonymous_codes/admin/update_code_group.rb b/app/commands/decidim/anonymous_codes/admin/update_code_group.rb index 4fc1068..15b79db 100644 --- a/app/commands/decidim/anonymous_codes/admin/update_code_group.rb +++ b/app/commands/decidim/anonymous_codes/admin/update_code_group.rb @@ -10,13 +10,13 @@ def initialize(form, code_group) end def call - return broadcast(:invalid) if @form.invalid? + return broadcast(:invalid) if form.invalid? transaction do update_code_group end - broadcast(:ok, @code_group) + broadcast(:ok, code_group) end private From e810bbfa6e7145ae1bcdf9df3b970862e86e3b36 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 11 Apr 2024 11:26:59 +0200 Subject: [PATCH 40/56] add code_group_form_spec --- spec/forms/admin/code_group_form_spec.rb | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 spec/forms/admin/code_group_form_spec.rb diff --git a/spec/forms/admin/code_group_form_spec.rb b/spec/forms/admin/code_group_form_spec.rb new file mode 100644 index 0000000..9b5d2bd --- /dev/null +++ b/spec/forms/admin/code_group_form_spec.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +require "spec_helper" + +module Decidim + module AnonymousCodes + module Admin + describe CodeGroupForm do + let(:current_organization) { create(:organization) } + let(:current_user) { create :user, organization: current_organization } + let(:form_params) do + { + title_en: "Sample Title", + title_ca: "Títol de la mostra", + title_es: "Titulo de ejemplo", + expires_at: 1.day.from_now, + active: true, + max_reuses: 10 + } + end + let(:form) do + CodeGroupForm.from_params( + form_params + ).with_context( + current_organization: current_organization + ) + end + + describe "validations" do + context "when all attributes are valid" do + it "is valid" do + expect(form).to be_valid + end + end + + context "when title is missing" do + let(:form_params) do + { + title_en: "Sample Title", + title_ca: "Títol de la mostra", + title_es: "Titulo de ejemplo", + expires_at: 1.day.from_now, + active: true, + max_reuses: 0 + } + end + let(:form) { described_class.new(form_params) } + + it "is invalid" do + expect(form).not_to be_valid + expect(form.errors[:max_reuses]).to include("must be greater than 0") + end + end + end + end + end + end +end From 569f79ee27b4e3b240da9bb963ec26534e642797 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 11 Apr 2024 11:46:31 +0200 Subject: [PATCH 41/56] refactor index view --- app/models/decidim/anonymous_codes/group.rb | 4 ++++ app/models/decidim/anonymous_codes/token.rb | 6 +----- .../anonymous_codes/admin/code_groups/index.html.erb | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/models/decidim/anonymous_codes/group.rb b/app/models/decidim/anonymous_codes/group.rb index 202f3e0..210c9e6 100644 --- a/app/models/decidim/anonymous_codes/group.rb +++ b/app/models/decidim/anonymous_codes/group.rb @@ -17,6 +17,10 @@ class Group < ApplicationRecord def self.for(organization) where(organization: organization) end + + def expired? + expires_at.present? && expires_at < Time.current + end end end end diff --git a/app/models/decidim/anonymous_codes/token.rb b/app/models/decidim/anonymous_codes/token.rb index 122124a..f712227 100644 --- a/app/models/decidim/anonymous_codes/token.rb +++ b/app/models/decidim/anonymous_codes/token.rb @@ -14,7 +14,7 @@ class Token < ApplicationRecord has_many :token_resources, class_name: "Decidim::AnonymousCodes::TokenResource", dependent: :destroy has_many :answers, through: :token_resources, source_type: "Decidim::Forms::Answer", source: :resource - delegate :active?, to: :group + delegate :active?, :expired?, to: :group validates :token, presence: true validates :token, uniqueness: { scope: [:group] } @@ -25,10 +25,6 @@ def available? def used? usage_count.to_i >= group.max_reuses.to_i end - - def expired? - group.expires_at.present? && group.expires_at < Time.current - end end end end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 8c74a07..6524ea9 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -12,8 +12,8 @@ <%= t("code_groups.index.header_table_title", scope: "decidim.anonymous_codes.admin") %> - <%= t("code_groups.index.expires_at", scope: "decidim.anonymous_codes.admin") %> <%= t("code_groups.index.active", scope: "decidim.anonymous_codes.admin") %> + <%= t("code_groups.index.expires_at", scope: "decidim.anonymous_codes.admin") %> <%= t("code_groups.index.num_of_tockens", scope: "decidim.anonymous_codes.admin") %> <%= t("code_groups.index.max_reuses", scope: "decidim.anonymous_codes.admin") %> @@ -23,14 +23,14 @@ <% groups.each do |group| %> <%= translated_attribute(group.title) %> - <%= l(group.expires_at, format: :decidim_short) %> <%= t("booleans.#{group.active}") %> + <%= group.expires_at.present? ? ("#{l(group.expires_at, format: :decidim_short)}".html_safe) : t('.never') %> <%= group.tokens_count %> <%= group.max_reuses %> <%= icon_link_to "circle-x", code_group_path(group.id), t("actions.destroy", scope: "decidim.anonymous_codes.admin"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.anonymous_codes.admin") } %> <%= icon_link_to "pencil", edit_code_group_path(group.id), t("actions.edit", scope: "decidim.anonymous_codes.admin"), class: "action-icon--edit" %> - <%= icon_link_to "eye", resource_path(group), t("actions.preview", scope: "decidim.anonymous_codes.admin"), class: "action-icon--preview#{group&.resource} ? '':' invisible'", target: :_blank %> + <%= icon_link_to "eye", resource_path(group), t("actions.preview", scope: "decidim.anonymous_codes.admin"), class: "action-icon--preview#{group&.resource ? '':' invisible'}", target: :_blank %> <% end %> From 38003ab5ae6ddaba99761051d1c4c334da8e4f5e Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 11 Apr 2024 11:57:40 +0200 Subject: [PATCH 42/56] use factory in code_groups_controller_spec --- .../anonymous_codes/admin/code_groups/index.html.erb | 2 +- spec/controller/admin/codes_groups_controller_spec.rb | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 6524ea9..2e9b783 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -24,7 +24,7 @@ <%= translated_attribute(group.title) %> <%= t("booleans.#{group.active}") %> - <%= group.expires_at.present? ? ("#{l(group.expires_at, format: :decidim_short)}".html_safe) : t('.never') %> + <%= group.expires_at.present? ? ("#{l(group.expires_at, format: :decidim_short)}".html_safe) : t(".never") %> <%= group.tokens_count %> <%= group.max_reuses %> diff --git a/spec/controller/admin/codes_groups_controller_spec.rb b/spec/controller/admin/codes_groups_controller_spec.rb index b54d19e..88113f5 100644 --- a/spec/controller/admin/codes_groups_controller_spec.rb +++ b/spec/controller/admin/codes_groups_controller_spec.rb @@ -46,13 +46,7 @@ module Admin context "when updating a group" do let(:current_organization) { create(:organization) } let(:group) do - Decidim::AnonymousCodes::Group.create( - title: "Sample Group", - expires_at: 1.day.from_now, - active: true, - max_reuses: 10, - organization: current_organization - ) + create(:anonymous_codes_group, expires_at: 1.day.from_now, active: true, max_reuses: 10, organization: current_organization) end it "assigns the requested group to @group and renders the edit template" do From 9de5771ff6babe4022d36863aac129784ec52843 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 11 Apr 2024 12:11:01 +0200 Subject: [PATCH 43/56] add i18n key --- config/locales/en.yml | 1 + spec/system/admin/access_code_groups_spec.rb | 2 ++ 2 files changed, 3 insertions(+) diff --git a/config/locales/en.yml b/config/locales/en.yml index 023df50..32baeeb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -33,6 +33,7 @@ en: expires_at: Expires at header_table_title: Title max_reuses: Re-use max + never: Never new_access_code_group_button: New access code group no_access_code_groups_records: No access code groups available. num_of_tockens: Num. of Tockens diff --git a/spec/system/admin/access_code_groups_spec.rb b/spec/system/admin/access_code_groups_spec.rb index 0e3d27b..fe0b0fd 100644 --- a/spec/system/admin/access_code_groups_spec.rb +++ b/spec/system/admin/access_code_groups_spec.rb @@ -33,6 +33,8 @@ expect(page).to have_content("New access code group") last_group = Decidim::AnonymousCodes::Group.last expect(last_group.title["en"]).to eq("New Group") + expect(last_group.max_reuses).to eq(10) + expect(last_group.active).to be(true) click_link "Edit" fill_in_i18n( From 97b1b5e12e645e9f5f37f2541ce6e6108e6f6c66 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 11 Apr 2024 12:21:42 +0200 Subject: [PATCH 44/56] add validations checks --- spec/forms/admin/code_group_form_spec.rb | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/spec/forms/admin/code_group_form_spec.rb b/spec/forms/admin/code_group_form_spec.rb index 9b5d2bd..34f2674 100644 --- a/spec/forms/admin/code_group_form_spec.rb +++ b/spec/forms/admin/code_group_form_spec.rb @@ -33,7 +33,7 @@ module Admin end end - context "when title is missing" do + context "when max reuses is less than 1" do let(:form_params) do { title_en: "Sample Title", @@ -51,6 +51,23 @@ module Admin expect(form.errors[:max_reuses]).to include("must be greater than 0") end end + + context "when expires_at is in the past" do + let(:form_params) do + { + title_en: "Sample Title", + expires_at: 1.day.ago, + active: true, + max_reuses: 10 + } + end + let(:form) { described_class.new(form_params) } + + it "is invalid" do + expect(form).not_to be_valid + expect(form.errors[:expires_at]).to include("must be after 2024-04-11") + end + end end end end From 274f99f889807304fbf49cb6aceb5d385489b6c2 Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 11 Apr 2024 12:35:46 +0200 Subject: [PATCH 45/56] adds a new access_code_group with nil expiration date --- spec/system/admin/access_code_groups_spec.rb | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/spec/system/admin/access_code_groups_spec.rb b/spec/system/admin/access_code_groups_spec.rb index fe0b0fd..2837ffb 100644 --- a/spec/system/admin/access_code_groups_spec.rb +++ b/spec/system/admin/access_code_groups_spec.rb @@ -53,4 +53,26 @@ expect(page).to have_content("My new Group") end end + + it "adds a new access code group with nil expiration date" do + visit decidim_admin_anonymous_codes.code_groups_path + + click_on "New access code group" + fill_in_i18n(:code_group_title, "#code_group-title-tabs", en: "New Group", es: "Nuevo Grupo", ca: "Nou Grup") + check "Active" + fill_in "Re-use max", with: 10 + click_on "create" + + expect(page).to have_content("Access code group successfully created") + expect(page).to have_content("New access code group") + + last_group = Decidim::AnonymousCodes::Group.last + expect(last_group.title["en"]).to eq("New Group") + expect(last_group.max_reuses).to eq(10) + expect(last_group.active).to be(true) + + visit decidim_admin_anonymous_codes.code_groups_path + expect(page).to have_content("New Group") + expect(page).to have_content("Never") + end end From 4d7b8d963fbda9898a71a57834f5bfb05dbd51fa Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 11 Apr 2024 13:15:15 +0200 Subject: [PATCH 46/56] add surveys helper_method --- .../admin/create_code_group.rb | 1 + .../admin/update_code_group.rb | 3 ++- .../admin/code_groups_controller.rb | 23 ++++++++++++++++++- .../anonymous_codes/admin/code_group_form.rb | 5 ++++ .../admin/code_groups/_form.html.erb | 4 ++++ config/locales/en.yml | 1 + 6 files changed, 35 insertions(+), 2 deletions(-) diff --git a/app/commands/decidim/anonymous_codes/admin/create_code_group.rb b/app/commands/decidim/anonymous_codes/admin/create_code_group.rb index 36ced64..8920229 100644 --- a/app/commands/decidim/anonymous_codes/admin/create_code_group.rb +++ b/app/commands/decidim/anonymous_codes/admin/create_code_group.rb @@ -30,6 +30,7 @@ def create_code_group! expires_at: form.expires_at, active: form.active, max_reuses: form.max_reuses, + resource: form.resource, organization: form.context.current_organization ) end diff --git a/app/commands/decidim/anonymous_codes/admin/update_code_group.rb b/app/commands/decidim/anonymous_codes/admin/update_code_group.rb index 15b79db..f6d932d 100644 --- a/app/commands/decidim/anonymous_codes/admin/update_code_group.rb +++ b/app/commands/decidim/anonymous_codes/admin/update_code_group.rb @@ -30,7 +30,8 @@ def update_code_group title: form.title, expires_at: form.expires_at, active: form.active, - max_reuses: form.max_reuses + max_reuses: form.max_reuses, + resource: form.resource ) end end diff --git a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb index f217de4..ee8575a 100644 --- a/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb +++ b/app/controllers/decidim/anonymous_codes/admin/code_groups_controller.rb @@ -5,7 +5,8 @@ module AnonymousCodes module Admin class CodeGroupsController < ApplicationController include Decidim::Admin::Paginable - helper_method :groups, :resource_path + include TranslatableAttributes + helper_method :groups, :resource_path, :surveys def index @groups = paginate(groups.order(created_at: :desc)) @@ -76,6 +77,26 @@ def resource_path(group) Decidim::ResourceLocatorPresenter.new(group.resource).path end + + def surveys + @surveys ||= begin + classes = Decidim.participatory_space_manifests.pluck :model_class_name + components = [] + classes.each do |klass| + spaces = klass.safe_constantize.where(organization: current_organization) + spaces.each do |space| + components.concat Decidim::Component.where(participatory_space: space).pluck(:id) + end + end + Decidim::Surveys::Survey.where(decidim_component_id: components).map do |survey| + component = survey.component + [ + "#{translated_attribute(component.participatory_space.title)} :: #{translated_attribute(component.name)}", + survey.id + ] + end + end + end end end end diff --git a/app/forms/decidim/anonymous_codes/admin/code_group_form.rb b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb index 5d2e159..5e56a28 100644 --- a/app/forms/decidim/anonymous_codes/admin/code_group_form.rb +++ b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb @@ -10,10 +10,15 @@ class CodeGroupForm < Decidim::Form attribute :expires_at, Decidim::Attributes::LocalizedDate attribute :active, Boolean, default: true attribute :max_reuses, Integer, default: 1 + attribute :resource_id, Integer validates :title, translatable_presence: true validates :expires_at, date: { after: Date.current }, if: ->(form) { form.expires_at.present? } validates :max_reuses, presence: true, numericality: { only_integer: true, greater_than: 0 } + + def resource + @resource ||= Decidim::Surveys::Survey.find_by(id: resource_id) + end end end end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb index 531313f..633b5f3 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/_form.html.erb @@ -19,5 +19,9 @@
<%= form.number_field :max_reuses, label: t(".max_reuses") %>
+ +
+ <%= form.select :resource_id, surveys, include_blank: true, label: t(".resource") %> +
diff --git a/config/locales/en.yml b/config/locales/en.yml index 32baeeb..64ef7dc 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -27,6 +27,7 @@ en: active: Active expires_at: Expires At max_reuses: Re-use max + resource: Linked resource (surveys) title: Title index: active: Active From 5f90ecd60bf8fbbeb66b7dcd6f02207e5778883d Mon Sep 17 00:00:00 2001 From: elviabth Date: Thu, 11 Apr 2024 16:26:23 +0200 Subject: [PATCH 47/56] add select to system test --- spec/system/admin/access_code_groups_spec.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spec/system/admin/access_code_groups_spec.rb b/spec/system/admin/access_code_groups_spec.rb index 2837ffb..1f6b7a9 100644 --- a/spec/system/admin/access_code_groups_spec.rb +++ b/spec/system/admin/access_code_groups_spec.rb @@ -3,8 +3,10 @@ require "spec_helper" describe "Access codes admin menu", type: :system do - let(:organization) { create(:organization) } + let(:organization) { component.organization } let(:user) { create :user, :admin, :confirmed, organization: organization } + let(:component) { survey.component } + let!(:survey) { create(:survey) } before do switch_to_host(organization.host) @@ -26,6 +28,7 @@ fill_in "Expires At", with: (Time.zone.today + 1.day).strftime("%d/%m/%Y %H:%M") check "Active" fill_in "Re-use max", with: 10 + select "#{component.participatory_space.title["en"]} :: #{component.name["en"]}", from: "code_group_resource_id" click_on "create" @@ -45,6 +48,7 @@ ca: "El meu nou Group" ) fill_in "Re-use max", with: 2 + select "#{component.participatory_space.title["en"]} :: #{component.name["en"]}", from: "code_group_resource_id" click_on "update" @@ -61,6 +65,8 @@ fill_in_i18n(:code_group_title, "#code_group-title-tabs", en: "New Group", es: "Nuevo Grupo", ca: "Nou Grup") check "Active" fill_in "Re-use max", with: 10 + select "#{component.participatory_space.title["en"]} :: #{component.name["en"]}", from: "code_group_resource_id" + click_on "create" expect(page).to have_content("Access code group successfully created") From bbfe588b643b9b9be8a7707e02f568b2ed80bf9e Mon Sep 17 00:00:00 2001 From: elviabth Date: Mon, 15 Apr 2024 10:21:31 +0200 Subject: [PATCH 48/56] put dates at the past --- app/forms/decidim/anonymous_codes/admin/code_group_form.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/forms/decidim/anonymous_codes/admin/code_group_form.rb b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb index 5e56a28..daa315d 100644 --- a/app/forms/decidim/anonymous_codes/admin/code_group_form.rb +++ b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb @@ -13,7 +13,7 @@ class CodeGroupForm < Decidim::Form attribute :resource_id, Integer validates :title, translatable_presence: true - validates :expires_at, date: { after: Date.current }, if: ->(form) { form.expires_at.present? } + validates :expires_at, date: { after: Date.current }, if: ->(form) { form.expires_at.present? && form.active } validates :max_reuses, presence: true, numericality: { only_integer: true, greater_than: 0 } def resource From e64c3551fb0877d93617b417adcb760f55ff5009 Mon Sep 17 00:00:00 2001 From: elviabth Date: Mon, 15 Apr 2024 12:25:56 +0200 Subject: [PATCH 49/56] refactor code_group_form_spec --- spec/forms/admin/code_group_form_spec.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/spec/forms/admin/code_group_form_spec.rb b/spec/forms/admin/code_group_form_spec.rb index 34f2674..49d8a2c 100644 --- a/spec/forms/admin/code_group_form_spec.rb +++ b/spec/forms/admin/code_group_form_spec.rb @@ -57,15 +57,16 @@ module Admin { title_en: "Sample Title", expires_at: 1.day.ago, - active: true, + active: active, max_reuses: 10 } end let(:form) { described_class.new(form_params) } + let(:active) { true } it "is invalid" do - expect(form).not_to be_valid - expect(form.errors[:expires_at]).to include("must be after 2024-04-11") + form.valid? + expect(form.errors[:expires_at]).to include("must be after #{I18n.l(Date.current)}") end end end From b3fc47953ba382929188203d3dce36c4152f1d5e Mon Sep 17 00:00:00 2001 From: elviabth Date: Mon, 15 Apr 2024 15:28:45 +0200 Subject: [PATCH 50/56] add more checks to code_group_form_spec --- spec/forms/admin/code_group_form_spec.rb | 27 +++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/spec/forms/admin/code_group_form_spec.rb b/spec/forms/admin/code_group_form_spec.rb index 49d8a2c..5330456 100644 --- a/spec/forms/admin/code_group_form_spec.rb +++ b/spec/forms/admin/code_group_form_spec.rb @@ -56,17 +56,34 @@ module Admin let(:form_params) do { title_en: "Sample Title", - expires_at: 1.day.ago, + expires_at: expires, active: active, max_reuses: 10 } end - let(:form) { described_class.new(form_params) } let(:active) { true } + let(:expires) { 1.day.ago } + let(:form) { described_class.new(form_params) } - it "is invalid" do - form.valid? - expect(form.errors[:expires_at]).to include("must be after #{I18n.l(Date.current)}") + it "is valid" do + expect(form).to be_valid + end + + context "when active" do + let(:active) { true } + + it "is invalid" do + expect(form).to be_invalid + expect(form.errors[:expires_at]).to include("must be after #{I18n.l(Date.current)}") + end + end + + context "and date is not present" do + let(:expires) { nil } + + it "is valid" do + expect(form).to be_valid + end end end end From 25f03ff80d2a2836137552d431dc6626e4430b2b Mon Sep 17 00:00:00 2001 From: elviabth Date: Mon, 15 Apr 2024 15:36:23 +0200 Subject: [PATCH 51/56] use TimeWithZone instead LocalizeDate --- app/forms/decidim/anonymous_codes/admin/code_group_form.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/forms/decidim/anonymous_codes/admin/code_group_form.rb b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb index daa315d..2ab0feb 100644 --- a/app/forms/decidim/anonymous_codes/admin/code_group_form.rb +++ b/app/forms/decidim/anonymous_codes/admin/code_group_form.rb @@ -7,13 +7,13 @@ class CodeGroupForm < Decidim::Form include TranslatableAttributes translatable_attribute :title, String - attribute :expires_at, Decidim::Attributes::LocalizedDate + attribute :expires_at, Decidim::Attributes::TimeWithZone attribute :active, Boolean, default: true attribute :max_reuses, Integer, default: 1 attribute :resource_id, Integer validates :title, translatable_presence: true - validates :expires_at, date: { after: Date.current }, if: ->(form) { form.expires_at.present? && form.active } + validates :expires_at, date: { after: Time.current }, if: ->(form) { form.expires_at.present? && form.active } validates :max_reuses, presence: true, numericality: { only_integer: true, greater_than: 0 } def resource From 4ffbcc2e699b765063d423dfa4ec864cf166ef00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 15 Apr 2024 17:55:35 +0200 Subject: [PATCH 52/56] fix form specs --- spec/forms/admin/code_group_form_spec.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/spec/forms/admin/code_group_form_spec.rb b/spec/forms/admin/code_group_form_spec.rb index 5330456..2496ccb 100644 --- a/spec/forms/admin/code_group_form_spec.rb +++ b/spec/forms/admin/code_group_form_spec.rb @@ -44,7 +44,6 @@ module Admin max_reuses: 0 } end - let(:form) { described_class.new(form_params) } it "is invalid" do expect(form).not_to be_valid @@ -61,9 +60,8 @@ module Admin max_reuses: 10 } end - let(:active) { true } + let(:active) { false } let(:expires) { 1.day.ago } - let(:form) { described_class.new(form_params) } it "is valid" do expect(form).to be_valid @@ -74,12 +72,12 @@ module Admin it "is invalid" do expect(form).to be_invalid - expect(form.errors[:expires_at]).to include("must be after #{I18n.l(Date.current)}") + expect(form.errors[:expires_at].first).to include("must be after") end end context "and date is not present" do - let(:expires) { nil } + let(:expires) { "" } it "is valid" do expect(form).to be_valid From f73c77e670941ab95919067521cbc63f1db44ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 15 Apr 2024 17:59:55 +0200 Subject: [PATCH 53/56] add screenshot --- README.md | 6 ++++++ docs/survey_admin.png | Bin 0 -> 138347 bytes 2 files changed, 6 insertions(+) create mode 100644 docs/survey_admin.png diff --git a/README.md b/README.md index fcc06b6..a1e49e8 100644 --- a/README.md +++ b/README.md @@ -77,8 +77,14 @@ end ## Screenshots +**Component public side:** + ![Survey restriction](docs/survey.png) +**Component Admin announcement:** + +![Survey admin side](docs/survey_admin.png) + Admin panel TODO diff --git a/docs/survey_admin.png b/docs/survey_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..499e22de0140edb5c9ffddba51eba38b79025480 GIT binary patch literal 138347 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 k1H;g2Ts&rU;qFB literal 0 HcmV?d00001 From a89a969a44a2718ec835801a9f5e11e9ea22f676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Mon, 15 Apr 2024 18:01:36 +0200 Subject: [PATCH 54/56] add screenshot --- README.md | 4 ++-- docs/code_groups.png | Bin 0 -> 50808 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 docs/code_groups.png diff --git a/README.md b/README.md index a1e49e8..069a631 100644 --- a/README.md +++ b/README.md @@ -85,9 +85,9 @@ end ![Survey admin side](docs/survey_admin.png) -Admin panel +**Codes admin panel:** -TODO +![Code groups](docs/code_groups.png) ## Contributing diff --git a/docs/code_groups.png b/docs/code_groups.png new file mode 100644 index 0000000000000000000000000000000000000000..035a4872592e2bc2582e4bc055d5afab0aa0e25f GIT binary patch literal 50808 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 UAhXg^+~2RHn4D Date: Tue, 16 Apr 2024 12:40:10 +0200 Subject: [PATCH 55/56] add usage --- app/models/decidim/anonymous_codes/token.rb | 2 ++ .../admin/code_groups/index.html.erb | 4 ++-- config/locales/en.yml | 2 +- spec/models/token_spec.rb | 8 ++++++++ spec/system/admin/access_code_groups_spec.rb | 17 ++++++++++++++--- 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/models/decidim/anonymous_codes/token.rb b/app/models/decidim/anonymous_codes/token.rb index f712227..3428020 100644 --- a/app/models/decidim/anonymous_codes/token.rb +++ b/app/models/decidim/anonymous_codes/token.rb @@ -18,6 +18,8 @@ class Token < ApplicationRecord validates :token, presence: true validates :token, uniqueness: { scope: [:group] } + scope :used, -> { where("usage_count > 0") } + def available? !used? && !expired? && active? end diff --git a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb index 2e9b783..d7e5f2a 100644 --- a/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb +++ b/app/views/decidim/anonymous_codes/admin/code_groups/index.html.erb @@ -14,7 +14,7 @@ <%= t("code_groups.index.header_table_title", scope: "decidim.anonymous_codes.admin") %> <%= t("code_groups.index.active", scope: "decidim.anonymous_codes.admin") %> <%= t("code_groups.index.expires_at", scope: "decidim.anonymous_codes.admin") %> - <%= t("code_groups.index.num_of_tockens", scope: "decidim.anonymous_codes.admin") %> + <%= t("code_groups.index.num_of_tokens", scope: "decidim.anonymous_codes.admin") %> <%= t("code_groups.index.max_reuses", scope: "decidim.anonymous_codes.admin") %> @@ -25,7 +25,7 @@ <%= translated_attribute(group.title) %> <%= t("booleans.#{group.active}") %> <%= group.expires_at.present? ? ("#{l(group.expires_at, format: :decidim_short)}".html_safe) : t(".never") %> - <%= group.tokens_count %> + <%= "#{group.tokens.used.count} / #{group.tokens_count}" %> <%= group.max_reuses %> <%= icon_link_to "circle-x", code_group_path(group.id), t("actions.destroy", scope: "decidim.anonymous_codes.admin"), method: :delete, class: "action-icon--remove", data: { confirm: t("actions.confirm_destroy", scope: "decidim.anonymous_codes.admin") } %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 64ef7dc..a924ebb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -37,7 +37,7 @@ en: never: Never new_access_code_group_button: New access code group no_access_code_groups_records: No access code groups available. - num_of_tockens: Num. of Tockens + num_of_tokens: Num. of Tokens start_by: Start by adding an access code group from the "%{button}" button. title: Access code groups new: diff --git a/spec/models/token_spec.rb b/spec/models/token_spec.rb index 1b819e9..ddddfb0 100644 --- a/spec/models/token_spec.rb +++ b/spec/models/token_spec.rb @@ -15,6 +15,10 @@ module AnonymousCodes it { is_expected.not_to be_used } + it "is not included in the used scope" do + expect(described_class.used.count).to eq(0) + end + it "has an empty counter cache" do expect(token.usage_count).to eq(0) end @@ -58,6 +62,10 @@ module AnonymousCodes it { is_expected.to be_used } + it "is included in the used scope" do + expect(described_class.used.count).to eq(1) + end + it "has a counter cache" do expect(token.usage_count).to eq(1) end diff --git a/spec/system/admin/access_code_groups_spec.rb b/spec/system/admin/access_code_groups_spec.rb index 1f6b7a9..f368324 100644 --- a/spec/system/admin/access_code_groups_spec.rb +++ b/spec/system/admin/access_code_groups_spec.rb @@ -7,6 +7,9 @@ let(:user) { create :user, :admin, :confirmed, organization: organization } let(:component) { survey.component } let!(:survey) { create(:survey) } + let!(:existing_group) { create(:anonymous_codes_group, organization: organization, resource: survey) } + let!(:anonymous_codes_token1) { create(:anonymous_codes_token, group: existing_group) } + let!(:anonymous_codes_token2) { create(:anonymous_codes_token, :used, group: existing_group) } before do switch_to_host(organization.host) @@ -16,6 +19,9 @@ it "adds a new access code group" do visit decidim_admin_anonymous_codes.code_groups_path + within find("tr", text: existing_group.title["en"]) do + expect(page).to have_content("1 / 2") + end click_on "New access code group" fill_in_i18n( @@ -39,7 +45,9 @@ expect(last_group.max_reuses).to eq(10) expect(last_group.active).to be(true) - click_link "Edit" + within find("tr", text: last_group.title["en"]) do + click_link "Edit" + end fill_in_i18n( :code_group_title, "#code_group-title-tabs", @@ -53,8 +61,11 @@ click_on "update" expect(page).to have_content("Access code group successfully updated") - within "table" do - expect(page).to have_content("My new Group") + within find("tr", text: "My new Group") do + expect(page).to have_content("0 / 0") + end + within find("tr", text: existing_group.title["en"]) do + expect(page).to have_content("1 / 2") end end From e67c8f2db894e8a476f88d77302e58e27ef40443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20Verg=C3=A9s?= Date: Tue, 16 Apr 2024 12:49:58 +0200 Subject: [PATCH 56/56] new screenshot --- docs/code_groups.png | Bin 50808 -> 49447 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/code_groups.png b/docs/code_groups.png index 035a4872592e2bc2582e4bc055d5afab0aa0e25f..197637667424ed7d7b45e6352b471487a303ccc0 100644 GIT binary patch literal 49447 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%0De<7wNle8B9OwBI5ATbDYeTgizO$ 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 literal 50808 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 UAhXg^+~2RHn4D