decidim-admin 0.26.0 → 0.27.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-admin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/cells/decidim/admin/attachments_privacy_warning/show.erb +3 -0
- data/app/cells/decidim/admin/attachments_privacy_warning_cell.rb +19 -0
- data/app/commands/decidim/admin/block_user.rb +1 -1
- data/app/commands/decidim/admin/close_session_managed_user.rb +1 -1
- data/app/commands/decidim/admin/create_area.rb +1 -1
- data/app/commands/decidim/admin/create_area_type.rb +6 -3
- data/app/commands/decidim/admin/create_attachment.rb +14 -6
- data/app/commands/decidim/admin/create_attachment_collection.rb +13 -4
- data/app/commands/decidim/admin/create_category.rb +6 -4
- data/app/commands/decidim/admin/create_component.rb +1 -1
- data/app/commands/decidim/admin/create_import.rb +4 -5
- data/app/commands/decidim/admin/create_import_example.rb +1 -1
- data/app/commands/decidim/admin/create_newsletter.rb +1 -1
- data/app/commands/decidim/admin/create_participatory_space_private_user.rb +1 -1
- data/app/commands/decidim/admin/create_scope.rb +1 -1
- data/app/commands/decidim/admin/create_scope_type.rb +6 -3
- data/app/commands/decidim/admin/create_static_page.rb +1 -1
- data/app/commands/decidim/admin/create_static_page_topic.rb +1 -1
- data/app/commands/decidim/admin/deliver_newsletter.rb +6 -6
- data/app/commands/decidim/admin/destroy_area.rb +1 -1
- data/app/commands/decidim/admin/destroy_category.rb +6 -3
- data/app/commands/decidim/admin/destroy_component.rb +1 -1
- data/app/commands/decidim/admin/destroy_newsletter.rb +1 -1
- data/app/commands/decidim/admin/destroy_participatory_space_private_user.rb +1 -1
- data/app/commands/decidim/admin/destroy_scope.rb +1 -1
- data/app/commands/decidim/admin/destroy_share_token.rb +1 -1
- data/app/commands/decidim/admin/destroy_static_page.rb +1 -1
- data/app/commands/decidim/admin/destroy_static_page_topic.rb +1 -1
- data/app/commands/decidim/admin/hide_resource.rb +2 -2
- data/app/commands/decidim/admin/impersonate_user.rb +1 -1
- data/app/commands/decidim/admin/invite_admin.rb +1 -1
- data/app/commands/decidim/admin/officialize_user.rb +1 -1
- data/app/commands/decidim/admin/process_participatory_space_private_user_import_csv.rb +7 -3
- data/app/commands/decidim/admin/process_user_group_verification_csv.rb +8 -4
- data/app/commands/decidim/admin/promote_managed_user.rb +1 -1
- data/app/commands/decidim/admin/publish_component.rb +1 -1
- data/app/commands/decidim/admin/reject_user_group.rb +1 -1
- data/app/commands/decidim/admin/remove_admin.rb +1 -1
- data/app/commands/decidim/admin/reorder_content_blocks.rb +1 -1
- data/app/commands/decidim/admin/transfer_user.rb +1 -1
- data/app/commands/decidim/admin/unblock_user.rb +1 -1
- data/app/commands/decidim/admin/unhide_resource.rb +1 -1
- data/app/commands/decidim/admin/unofficialize_user.rb +1 -1
- data/app/commands/decidim/admin/unpublish_component.rb +1 -1
- data/app/commands/decidim/admin/unreport_resource.rb +1 -1
- data/app/commands/decidim/admin/unreport_user.rb +1 -1
- data/app/commands/decidim/admin/update_area.rb +1 -1
- data/app/commands/decidim/admin/update_area_type.rb +8 -3
- data/app/commands/decidim/admin/update_attachment.rb +4 -3
- data/app/commands/decidim/admin/update_attachment_collection.rb +8 -3
- data/app/commands/decidim/admin/update_category.rb +9 -5
- data/app/commands/decidim/admin/update_component.rb +8 -5
- data/app/commands/decidim/admin/update_component_permissions.rb +9 -6
- data/app/commands/decidim/admin/update_content_block.rb +1 -1
- data/app/commands/decidim/admin/update_external_domain_whitelist.rb +6 -3
- data/app/commands/decidim/admin/update_help_sections.rb +17 -3
- data/app/commands/decidim/admin/update_newsletter.rb +1 -1
- data/app/commands/decidim/admin/update_organization.rb +1 -1
- data/app/commands/decidim/admin/update_organization_appearance.rb +1 -1
- data/app/commands/decidim/admin/update_organization_tos_version.rb +1 -1
- data/app/commands/decidim/admin/update_resource_permissions.rb +2 -2
- data/app/commands/decidim/admin/update_scope.rb +1 -1
- data/app/commands/decidim/admin/update_scope_type.rb +8 -3
- data/app/commands/decidim/admin/update_static_page.rb +1 -1
- data/app/commands/decidim/admin/update_static_page_topic.rb +1 -1
- data/app/commands/decidim/admin/update_user_groups.rb +1 -1
- data/app/commands/decidim/admin/verify_user_group.rb +1 -1
- data/app/controllers/concerns/decidim/admin/filterable.rb +1 -1
- data/app/controllers/concerns/decidim/admin/participatory_space_export.rb +3 -1
- data/app/controllers/decidim/admin/application_controller.rb +1 -0
- data/app/controllers/decidim/admin/area_types_controller.rb +6 -3
- data/app/controllers/decidim/admin/categories_controller.rb +3 -3
- data/app/controllers/decidim/admin/component_permissions_controller.rb +1 -1
- data/app/controllers/decidim/admin/components/base_controller.rb +1 -0
- data/app/controllers/decidim/admin/components_controller.rb +1 -1
- data/app/controllers/decidim/admin/concerns/has_attachment_collections.rb +6 -3
- data/app/controllers/decidim/admin/concerns/has_attachments.rb +6 -3
- data/app/controllers/decidim/admin/concerns/has_private_users_csv_import.rb +7 -0
- data/app/controllers/decidim/admin/conflicts_controller.rb +3 -1
- data/app/controllers/decidim/admin/dashboard_controller.rb +4 -3
- data/app/controllers/decidim/admin/exports_controller.rb +4 -1
- data/app/controllers/decidim/admin/help_sections_controller.rb +1 -1
- data/app/controllers/decidim/admin/metrics_controller.rb +2 -1
- data/app/controllers/decidim/admin/moderations_controller.rb +9 -7
- data/app/controllers/decidim/admin/organization_external_domain_whitelist_controller.rb +1 -1
- data/app/controllers/decidim/admin/reminders_controller.rb +61 -0
- data/app/controllers/decidim/admin/resource_permissions_controller.rb +2 -2
- data/app/controllers/decidim/admin/scope_types_controller.rb +6 -3
- data/app/controllers/decidim/admin/static_pages_controller.rb +1 -7
- data/app/forms/decidim/admin/category_form.rb +1 -2
- data/app/forms/decidim/admin/component_form.rb +16 -7
- data/app/forms/decidim/admin/import_example_form.rb +1 -5
- data/app/forms/decidim/admin/import_form.rb +7 -10
- data/app/forms/decidim/admin/managed_user_promotion_form.rb +1 -1
- data/app/forms/decidim/admin/participatory_space_private_user_csv_import_form.rb +7 -4
- data/app/forms/decidim/admin/permission_form.rb +9 -8
- data/app/forms/decidim/admin/permissions_form.rb +1 -10
- data/app/forms/decidim/admin/selective_newsletter_form.rb +1 -1
- data/app/forms/decidim/admin/user_group_csv_verification_form.rb +2 -2
- data/app/helpers/decidim/admin/bulk_actions_helper.rb +0 -4
- data/app/helpers/decidim/admin/moderations/reports_helper.rb +11 -2
- data/app/helpers/decidim/admin/newsletters_helper.rb +1 -1
- data/app/helpers/decidim/admin/reminders_helper.rb +12 -0
- data/app/packs/entrypoints/decidim_admin.js +2 -1
- data/app/packs/src/decidim/admin/admin_autocomplete.js +82 -0
- data/app/packs/src/decidim/admin/application.js +0 -16
- data/app/packs/stylesheets/decidim/admin/_decidim.scss +0 -1
- data/app/packs/stylesheets/decidim/admin/modules/_autocomplete.scss +5 -0
- data/app/packs/stylesheets/decidim/admin/modules/_modules.scss +2 -0
- data/app/packs/stylesheets/decidim/admin/modules/_upload_modal.scss +42 -0
- data/app/permissions/decidim/admin/permissions.rb +1 -0
- data/app/presenters/decidim/admin/dashboard_metric_charts_presenter.rb +3 -1
- data/app/queries/decidim/admin/active_users_counter.rb +1 -1
- data/app/queries/decidim/admin/newsletter_recipients.rb +5 -4
- data/app/queries/decidim/admin/user_filter.rb +1 -1
- data/app/queries/decidim/admin/user_groups_evaluation.rb +1 -1
- data/app/views/decidim/admin/attachments/index.html.erb +1 -0
- data/app/views/decidim/admin/categories/_form.html.erb +0 -4
- data/app/views/decidim/admin/categories/show.html.erb +1 -2
- data/app/views/decidim/admin/organization_appearance/form/_colors.html.erb +6 -6
- data/app/views/decidim/admin/organization_appearance/form/_images.html.erb +5 -4
- data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +1 -1
- data/app/views/decidim/admin/participatory_space_private_users_csv_imports/new.html.erb +20 -1
- data/app/views/decidim/admin/reminders/new.html.erb +21 -0
- data/app/views/decidim/admin/shared/_gallery.html.erb +6 -1
- data/app/views/decidim/admin/shared/_js-callout.html.erb +6 -0
- data/app/views/decidim/admin/users_statistics/_users_count.html.erb +2 -2
- data/app/views/layouts/decidim/admin/_application.html.erb +2 -0
- data/config/locales/am-ET.yml +1 -0
- data/config/locales/ar.yml +242 -28
- data/config/locales/bg.yml +1 -0
- data/config/locales/ca.yml +28 -6
- data/config/locales/cs.yml +29 -5
- data/config/locales/da.yml +1 -0
- data/config/locales/de.yml +47 -5
- data/config/locales/el.yml +1 -6
- data/config/locales/en.yml +26 -5
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +27 -5
- data/config/locales/es-PY.yml +27 -5
- data/config/locales/es.yml +28 -6
- data/config/locales/et.yml +1 -0
- data/config/locales/eu.yml +1 -6
- data/config/locales/fi-plain.yml +27 -5
- data/config/locales/fi.yml +27 -5
- data/config/locales/fr-CA.yml +26 -4
- data/config/locales/fr.yml +26 -4
- data/config/locales/ga-IE.yml +1 -1
- data/config/locales/gl.yml +16 -5
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +25 -4
- data/config/locales/id-ID.yml +1 -3
- data/config/locales/is-IS.yml +2 -4
- data/config/locales/it.yml +6 -6
- data/config/locales/ja.yml +38 -17
- data/config/locales/ko.yml +1 -0
- data/config/locales/lb.yml +1 -6
- data/config/locales/lt.yml +946 -0
- data/config/locales/lv.yml +1 -3
- data/config/locales/mt.yml +1 -0
- data/config/locales/nl.yml +1 -6
- data/config/locales/no.yml +13 -7
- data/config/locales/om-ET.yml +1 -0
- data/config/locales/pl.yml +82 -5
- data/config/locales/pt-BR.yml +2 -7
- data/config/locales/pt.yml +1 -6
- data/config/locales/ro-RO.yml +7 -6
- data/config/locales/ru.yml +1 -3
- data/config/locales/si-LK.yml +1 -0
- data/config/locales/sk.yml +1 -3
- data/config/locales/sl.yml +1 -0
- data/config/locales/so-SO.yml +1 -0
- data/config/locales/sr-CS.yml +1 -2
- data/config/locales/sv.yml +30 -8
- data/config/locales/sw-KE.yml +1 -0
- data/config/locales/ti-ER.yml +1 -0
- data/config/locales/tr-TR.yml +1 -4
- data/config/locales/uk.yml +1 -2
- data/config/locales/val-ES.yml +1 -0
- data/config/locales/vi.yml +1 -0
- data/config/locales/zh-CN.yml +1 -3
- data/config/locales/zh-TW.yml +1 -0
- data/lib/decidim/admin/engine.rb +0 -1
- data/lib/decidim/admin/import/importer.rb +9 -7
- data/lib/decidim/admin/import/readers/json.rb +1 -1
- data/lib/decidim/admin/test/commands/create_attachment_collection_examples.rb +15 -2
- data/lib/decidim/admin/test/commands/create_category_examples.rb +16 -6
- data/lib/decidim/admin/test/commands/destroy_category_examples.rb +29 -1
- data/lib/decidim/admin/test/commands/update_attachment_collection_examples.rb +15 -2
- data/lib/decidim/admin/test/commands/update_category_examples.rb +16 -6
- data/lib/decidim/admin/test/filters_participatory_space_user_roles_examples.rb +4 -4
- data/lib/decidim/admin/test/filters_participatory_space_users_examples.rb +4 -4
- data/lib/decidim/admin/test/forms/category_form_examples.rb +1 -21
- data/lib/decidim/admin/test/manage_attachments_examples.rb +9 -2
- data/lib/decidim/admin/test/manage_categories_examples.rb +0 -10
- data/lib/decidim/admin/test/manage_component_permissions_examples.rb +0 -2
- data/lib/decidim/admin/test/manage_moderations_examples.rb +26 -0
- data/lib/decidim/admin/version.rb +1 -1
- metadata +21 -15
- data/app/packs/src/decidim/admin/autocomplete.component.js +0 -146
- data/app/packs/src/decidim/admin/autocomplete.component.test.js +0 -19
- data/app/packs/stylesheets/decidim/admin/components/_autocomplete_select.component.scss +0 -19
@@ -0,0 +1,82 @@
|
|
1
|
+
import AutoComplete from "src/decidim/autocomplete";
|
2
|
+
|
3
|
+
/**
|
4
|
+
* This function can be used to create an autocomplete input automatically
|
5
|
+
* from the following kind of div:
|
6
|
+
* <div data-autocomplete="{...}"></div>
|
7
|
+
*
|
8
|
+
* The data-autocomplete attribute should contain the following configuration
|
9
|
+
* as an encoded JSON, which is used to generate the AutoComplete options:
|
10
|
+
* - name: assembly_member[user_id],
|
11
|
+
* - options: [],
|
12
|
+
* - placeholder: "Select a participant",
|
13
|
+
* - searchURL: "http://..."
|
14
|
+
* - selected: "",
|
15
|
+
*
|
16
|
+
* @param {HTMLElement} el The element to generate the autocomplete for.
|
17
|
+
* @returns {AutoComplete} An instance of the AutoComplete class.
|
18
|
+
*/
|
19
|
+
const autoConfigure = (el) => {
|
20
|
+
const config = JSON.parse(el.dataset.autocomplete);
|
21
|
+
const textInput = document.createElement("input");
|
22
|
+
textInput.type = "text";
|
23
|
+
textInput.className = "autocomplete-input";
|
24
|
+
el.appendChild(textInput);
|
25
|
+
let mode = config.mode || "sticky"
|
26
|
+
let selected = null;
|
27
|
+
if (config.selected) {
|
28
|
+
switch (mode) {
|
29
|
+
case "multi":
|
30
|
+
selected = config.selected.map((item) => (
|
31
|
+
{
|
32
|
+
key: "label",
|
33
|
+
value: {
|
34
|
+
value: item.value,
|
35
|
+
label: item.label
|
36
|
+
}
|
37
|
+
}
|
38
|
+
));
|
39
|
+
break;
|
40
|
+
case "sticky":
|
41
|
+
selected = { key: "label", value: config.options[config.options.length - 1] };
|
42
|
+
break;
|
43
|
+
default:
|
44
|
+
selected = config.selected;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
const dataSource = (query, callback) => {
|
49
|
+
const params = new URLSearchParams({ term: query });
|
50
|
+
fetch(`${config.searchURL}?${params.toString()}`, {
|
51
|
+
method: "GET",
|
52
|
+
headers: { "Content-Type": "application/json" }
|
53
|
+
}).then((response) => response.json()).then((data) => {
|
54
|
+
callback(data)
|
55
|
+
});
|
56
|
+
};
|
57
|
+
|
58
|
+
const ac = new AutoComplete(textInput, {
|
59
|
+
name: config.name,
|
60
|
+
placeholder: config.placeholder,
|
61
|
+
selected: selected,
|
62
|
+
mode: mode,
|
63
|
+
searchPrompt: true,
|
64
|
+
searchPromptText: config.searchPromptText,
|
65
|
+
threshold: 3,
|
66
|
+
dataMatchKeys: ["label"],
|
67
|
+
dataSource
|
68
|
+
});
|
69
|
+
|
70
|
+
return ac;
|
71
|
+
}
|
72
|
+
|
73
|
+
$(() => {
|
74
|
+
const $autocompleteDiv = $("[data-autocomplete]");
|
75
|
+
if ($autocompleteDiv.length < 1) {
|
76
|
+
return;
|
77
|
+
}
|
78
|
+
|
79
|
+
$autocompleteDiv.each((_index, element) => {
|
80
|
+
autoConfigure(element);
|
81
|
+
})
|
82
|
+
})
|
@@ -1,13 +1,10 @@
|
|
1
1
|
/* eslint-disable no-invalid-this */
|
2
2
|
|
3
|
-
import * as React from "react";
|
4
|
-
import * as ReactDOM from "react-dom";
|
5
3
|
import toggleNav from "src/decidim/admin/toggle_nav"
|
6
4
|
import createSortList from "src/decidim/admin/sort_list.component"
|
7
5
|
import createQuillEditor from "src/decidim/editor"
|
8
6
|
import formDatePicker from "src/decidim/form_datepicker"
|
9
7
|
import DataPicker from "src/decidim/data_picker"
|
10
|
-
import Autocomplete from "src/decidim/admin/autocomplete.component";
|
11
8
|
import FormFilterComponent from "src/decidim/form_filter"
|
12
9
|
import Configuration from "src/decidim/configuration"
|
13
10
|
import InputCharacterCounter from "src/decidim/input_character_counter"
|
@@ -18,17 +15,6 @@ window.Decidim.managedUsersForm = managedUsersForm
|
|
18
15
|
window.Decidim.config = new Configuration()
|
19
16
|
window.Decidim.InputCharacterCounter = InputCharacterCounter;
|
20
17
|
|
21
|
-
const renderAutocompleteSelects = (nodeSelector) => {
|
22
|
-
window.$(nodeSelector).each((index, node) => {
|
23
|
-
const props = { ...window.$(node).data("autocomplete") };
|
24
|
-
|
25
|
-
ReactDOM.render(
|
26
|
-
React.createElement(Autocomplete, props),
|
27
|
-
node
|
28
|
-
);
|
29
|
-
});
|
30
|
-
};
|
31
|
-
|
32
18
|
$(() => {
|
33
19
|
window.theDataPicker = new DataPicker($(".data-picker"));
|
34
20
|
|
@@ -36,8 +22,6 @@ $(() => {
|
|
36
22
|
|
37
23
|
toggleNav();
|
38
24
|
|
39
|
-
renderAutocompleteSelects('[data-plugin="autocomplete"]');
|
40
|
-
|
41
25
|
createSortList("#steps tbody", {
|
42
26
|
placeholder: $('<tr style="border-style: dashed; border-color: #000"><td colspan="4"> </td></tr>')[0],
|
43
27
|
onSortUpdate: ($children) => {
|
@@ -17,7 +17,6 @@
|
|
17
17
|
@import "stylesheets/decidim/admin/modules/modules";
|
18
18
|
@import "stylesheets/decidim/admin/plugins/jquery.auto-complete";
|
19
19
|
@import "stylesheets/decidim/admin/components/accordion";
|
20
|
-
@import "stylesheets/decidim/admin/components/autocomplete_select.component";
|
21
20
|
@import "stylesheets/decidim/admin/components/dropdown-menu";
|
22
21
|
@import "stylesheets/decidim/admin/components/sortable";
|
23
22
|
@import "stylesheets/decidim/vizzs";
|
@@ -4,6 +4,7 @@
|
|
4
4
|
@import "stylesheets/decidim/admin/modules/buttons";
|
5
5
|
@import "stylesheets/decidim/admin/modules/forms";
|
6
6
|
@import "stylesheets/decidim/admin/modules/tabs";
|
7
|
+
@import "stylesheets/decidim/admin/modules/autocomplete";
|
7
8
|
|
8
9
|
//General layout
|
9
10
|
@import "stylesheets/decidim/admin/modules/layout";
|
@@ -31,6 +32,7 @@
|
|
31
32
|
@import "stylesheets/decidim/admin/modules/loading-spinner";
|
32
33
|
@import "stylesheets/decidim/admin/modules/import_result";
|
33
34
|
@import "stylesheets/decidim/admin/modules/reveal";
|
35
|
+
@import "stylesheets/decidim/admin/modules/upload_modal";
|
34
36
|
|
35
37
|
// mentions__container
|
36
38
|
@import "stylesheets/decidim/modules/tags";
|
@@ -0,0 +1,42 @@
|
|
1
|
+
@import "stylesheets/decidim/modules/upload_modal";
|
2
|
+
|
3
|
+
.upload-modal{
|
4
|
+
button{
|
5
|
+
cursor: pointer;
|
6
|
+
}
|
7
|
+
|
8
|
+
.upload-items{
|
9
|
+
.upload-item-first-row{
|
10
|
+
display: flex;
|
11
|
+
|
12
|
+
.file-name-span{
|
13
|
+
flex: 4 1 0;
|
14
|
+
}
|
15
|
+
|
16
|
+
.title-container{
|
17
|
+
flex: 3.5 1 0;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
.upload-item-second-row{
|
22
|
+
display: flex;
|
23
|
+
|
24
|
+
.progress-bar-wrapper{
|
25
|
+
flex: 4 1 0;
|
26
|
+
margin-right: 1rem;
|
27
|
+
|
28
|
+
.progress-bar-border{
|
29
|
+
border: 1px solid map-get($foundation-palette, primary);
|
30
|
+
|
31
|
+
.progress-bar{
|
32
|
+
background-color: map-get($foundation-palette, primary);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
.remove-upload-item{
|
38
|
+
flex: 1 1 0;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
@@ -56,6 +56,7 @@ module Decidim
|
|
56
56
|
allow! if permission_action.subject == :static_page_topic
|
57
57
|
allow! if permission_action.subject == :help_sections
|
58
58
|
allow! if permission_action.subject == :share_token
|
59
|
+
allow! if permission_action.subject == :reminder
|
59
60
|
end
|
60
61
|
|
61
62
|
permission_action
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Admin
|
5
5
|
# Counts active users making a distinction between whether they are admins or participants
|
6
|
-
class ActiveUsersCounter <
|
6
|
+
class ActiveUsersCounter < Decidim::Query
|
7
7
|
# Initializes the class.
|
8
8
|
#
|
9
9
|
# @param organization [Organization] Current organization
|
@@ -4,7 +4,7 @@ module Decidim
|
|
4
4
|
module Admin
|
5
5
|
# A class used to find the recipients of the
|
6
6
|
# Newsletter depending on the params of the form
|
7
|
-
class NewsletterRecipients <
|
7
|
+
class NewsletterRecipients < Decidim::Query
|
8
8
|
# Syntactic sugar to initialize the class and return the queried objects.
|
9
9
|
#
|
10
10
|
# form - params to filter the query
|
@@ -51,11 +51,12 @@ module Decidim
|
|
51
51
|
@spaces ||= @form.participatory_space_types.map do |type|
|
52
52
|
next if type.ids.blank?
|
53
53
|
|
54
|
-
object_class =
|
54
|
+
object_class = Decidim.participatory_space_registry.find(type.manifest_name).model_class_name.constantize
|
55
|
+
|
55
56
|
if type.ids.include?("all")
|
56
|
-
object_class.
|
57
|
+
object_class.where(organization: @organization)
|
57
58
|
else
|
58
|
-
object_class.
|
59
|
+
object_class.where(id: type.ids.compact_blank)
|
59
60
|
end
|
60
61
|
end.flatten.compact
|
61
62
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Decidim
|
4
4
|
module Admin
|
5
5
|
# A class used to find the UserGroup's by their evaluation state.
|
6
|
-
class UserGroupsEvaluation <
|
6
|
+
class UserGroupsEvaluation < Decidim::Query
|
7
7
|
# Syntactic sugar to initialize the class and return the queried objects.
|
8
8
|
#
|
9
9
|
# user_groups - the initial User Group relation that needs to be filtered.
|
@@ -12,10 +12,6 @@
|
|
12
12
|
<%= form.number_field :weight %>
|
13
13
|
</div>
|
14
14
|
|
15
|
-
<div class="row column">
|
16
|
-
<%= form.translated :editor, :description %>
|
17
|
-
</div>
|
18
|
-
|
19
15
|
<div class="row column">
|
20
16
|
<%= form.label :parent_id %>
|
21
17
|
<%= select :category, :parent_id, @form.parent_categories.collect { |c| [c.name[current_organization.default_locale], c.id] }, include_blank: true %>
|
@@ -2,13 +2,13 @@
|
|
2
2
|
<div class="card-divider">
|
3
3
|
<h2 class="card-title"><%= t ".colors_title" %></h2>
|
4
4
|
</div>
|
5
|
-
<div class="callout warning">
|
6
|
-
<p>
|
7
|
-
<%= icon "warning" %>
|
8
|
-
<%= t ".colors_warning_html", link: "https://webaim.org/resources/contrastchecker" %>
|
9
|
-
</p>
|
10
|
-
</div>
|
11
5
|
<div class="card-section">
|
6
|
+
<div class="callout warning">
|
7
|
+
<p>
|
8
|
+
<%= icon "warning" %>
|
9
|
+
<%= t ".colors_warning_html", link: "https://webaim.org/resources/contrastchecker" %>
|
10
|
+
</p>
|
11
|
+
</div>
|
12
12
|
<div class="organization-colors">
|
13
13
|
<%= form.color_field :primary_color, value: current_organization.colors["primary"] %>
|
14
14
|
<%= form.color_field :secondary_color, value: current_organization.colors["secondary"] %>
|
@@ -14,7 +14,8 @@
|
|
14
14
|
<%= form.upload(
|
15
15
|
:favicon,
|
16
16
|
dimensions_info: current_organization.attached_uploader(:favicon).dimensions_info,
|
17
|
-
extension_allowlist: current_organization.attached_uploader(:favicon).extension_allowlist
|
17
|
+
extension_allowlist: current_organization.attached_uploader(:favicon).extension_allowlist,
|
18
|
+
help_i18n_scope: "decidim.forms.file_help.icon"
|
18
19
|
) %>
|
19
20
|
</div>
|
20
21
|
|
@@ -22,7 +23,7 @@
|
|
22
23
|
<%= form.upload(
|
23
24
|
:logo,
|
24
25
|
dimensions_info: current_organization.attached_uploader(:logo).dimensions_info,
|
25
|
-
extension_allowlist: current_organization.attached_uploader(:
|
26
|
+
extension_allowlist: current_organization.attached_uploader(:logo).extension_allowlist
|
26
27
|
) %>
|
27
28
|
</div>
|
28
29
|
|
@@ -30,7 +31,7 @@
|
|
30
31
|
<%= form.upload(
|
31
32
|
:official_img_header,
|
32
33
|
dimensions_info: current_organization.attached_uploader(:official_img_header).dimensions_info,
|
33
|
-
extension_allowlist: current_organization.attached_uploader(:
|
34
|
+
extension_allowlist: current_organization.attached_uploader(:official_img_header).extension_allowlist
|
34
35
|
) %>
|
35
36
|
</div>
|
36
37
|
|
@@ -38,7 +39,7 @@
|
|
38
39
|
<%= form.upload(
|
39
40
|
:official_img_footer,
|
40
41
|
dimensions_info: current_organization.attached_uploader(:official_img_footer).dimensions_info,
|
41
|
-
extension_allowlist: current_organization.attached_uploader(:
|
42
|
+
extension_allowlist: current_organization.attached_uploader(:official_img_footer).extension_allowlist
|
42
43
|
) %>
|
43
44
|
</div>
|
44
45
|
</div>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<h2 class="card-title">
|
4
4
|
<%= t(".title") %>
|
5
5
|
<% if allowed_to? :create, :space_private_user %>
|
6
|
-
<%= link_to t(".import_via_csv"),
|
6
|
+
<%= link_to t(".import_via_csv"), new_participatory_space_private_users_csv_imports_path, class: "button tiny button--title import" %>
|
7
7
|
<%= link_to t("actions.participatory_space_private_user.new", scope: "decidim.admin"), url_for(action: :new), class: "button tiny button--title new" %>
|
8
8
|
<% end %>
|
9
9
|
</h2>
|
@@ -1,3 +1,22 @@
|
|
1
|
+
<div class="card">
|
2
|
+
<div class="card-divider">
|
3
|
+
<h2 class="card-title">
|
4
|
+
<%= t(".destroy.title") %>
|
5
|
+
</h2>
|
6
|
+
</div>
|
7
|
+
<div class="card-section">
|
8
|
+
<% if @count != 0 %>
|
9
|
+
<p><%= t(".destroy.explanation", count: @count) %></p>
|
10
|
+
<%= link_to t(".destroy.button"),
|
11
|
+
destroy_all_participatory_space_private_users_csv_imports_path,
|
12
|
+
method: :delete,
|
13
|
+
class: "button alert",
|
14
|
+
data: { confirm: t(".destroy.confirm") } %>
|
15
|
+
<% else %>
|
16
|
+
<p><%= t(".destroy.empty") %></p>
|
17
|
+
<% end %>
|
18
|
+
</div>
|
19
|
+
</div>
|
1
20
|
<div class="card" id='user-groups'>
|
2
21
|
<div class="card-divider">
|
3
22
|
<h2 class="card-title">
|
@@ -5,7 +24,7 @@
|
|
5
24
|
</h2>
|
6
25
|
</div>
|
7
26
|
<div class="card-section">
|
8
|
-
<%= decidim_form_for(@form, url:
|
27
|
+
<%= decidim_form_for(@form, url: participatory_space_private_users_csv_imports_path, html: { class: "form" }) do |form| %>
|
9
28
|
<p><%= t(".explanation") %></p>
|
10
29
|
<div class="row column">
|
11
30
|
<%= form.upload :file, optional: false %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<%= decidim_form_for(@form, url: component_reminders_path(name: reminder_manifest.name), class: "form grid-container") do |form| %>
|
2
|
+
<div class="card">
|
3
|
+
<div class="card-divider">
|
4
|
+
<h2 class="card-title flex--sbc">
|
5
|
+
<%= reminder_manifest.message(:title, count: @form.try(:reminder_amount)) %>
|
6
|
+
</h2>
|
7
|
+
</div>
|
8
|
+
<div class="card-section">
|
9
|
+
<div class="row">
|
10
|
+
<div class="columns small-12">
|
11
|
+
<p><%= reminder_manifest.message(:description) %></p>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
<div class="row">
|
15
|
+
<div class="columns small-12 text-center">
|
16
|
+
<%= form.submit t(".submit") %>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
<% end %>
|
@@ -15,7 +15,12 @@
|
|
15
15
|
<% end %>
|
16
16
|
|
17
17
|
<div class="row column">
|
18
|
-
<%= form.
|
18
|
+
<%= form.attachment :photos,
|
19
|
+
multiple: true,
|
20
|
+
label: t(".add_images"),
|
21
|
+
button_label: t(".add_images"),
|
22
|
+
button_edit_label: t(".edit_images"),
|
23
|
+
help_i18n_scope: "decidim.forms.file_help.image" %>
|
19
24
|
</div>
|
20
25
|
</fieldset>
|
21
26
|
</div>
|
@@ -24,13 +24,13 @@
|
|
24
24
|
<td class="title"><%= t(".participants") %></td>
|
25
25
|
<td><%= result[:total_participants_last_month] %></td>
|
26
26
|
<td><%= result[:total_participants_last_week] %></td>
|
27
|
-
<td><%= result[:
|
27
|
+
<td><%= result[:total_participants_last_day] %></td>
|
28
28
|
</tr>
|
29
29
|
<tr>
|
30
30
|
<td class="title"><%= t(".admins") %></td>
|
31
31
|
<td><%= result[:total_admins_last_month] %></td>
|
32
32
|
<td><%= result[:total_admins_last_week] %></td>
|
33
|
-
<td><%= result[:
|
33
|
+
<td><%= result[:total_admins_last_day] %></td>
|
34
34
|
</tr>
|
35
35
|
</tbody>
|
36
36
|
</table>
|
data/config/locales/am-ET.yml
CHANGED