decidim-direct_verifications 1.0.2 → 1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/app/commands/decidim/direct_verifications/verification/create_import.rb +5 -7
- data/app/jobs/decidim/direct_verifications/base_import_job.rb +6 -10
- data/app/packs/entrypoints/decidim_direct_verifications.js +4 -0
- data/app/packs/entrypoints/decidim_direct_verifications.scss +1 -0
- data/app/packs/src/decidim/direct_verifications/admin/checkboxes.js +7 -0
- data/app/{assets/stylesheets/decidim/direct_verifications → packs/stylesheets/decidim/direct_verifications/admin}/authorizations.scss +1 -1
- data/app/views/decidim/direct_verifications/verification/admin/authorizations/index.html.erb +1 -1
- data/app/views/decidim/direct_verifications/verification/admin/direct_verifications/index.html.erb +1 -1
- data/app/views/decidim/direct_verifications/verification/admin/imports/new.html.erb +1 -1
- data/config/assets.rb +24 -0
- data/lib/decidim/direct_verifications/verification/admin_engine.rb +2 -5
- data/lib/decidim/direct_verifications/version.rb +3 -3
- data/package.json +192 -0
- metadata +12 -11
- data/app/assets/config/direct_verifications_admin_manifest.css +0 -3
- data/app/assets/config/direct_verifications_admin_manifest.js +0 -1
- data/app/assets/javascripts/decidim/direct_verifications/verification/admin/direct_verifications_admin.js.es6 +0 -7
- data/app/uploaders/decidim/direct_verifications/csv_uploader.rb +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e42a469a3e54d28a703c6565abdb73aa70d33c540882e8737c0e92592d18d238
|
4
|
+
data.tar.gz: 1c2ff4b72713ad26ba30b350efbcc31840fa42aac1f171faa32f0b1b64596d22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1514cdfd920925b28b1d89e4c615a4ce0a97ceca4a85fcffab0706e6b740e0ae11541c04ce77a992da7aa21ef6b289795abf8cd3ccb950f7c1613531b3f57460
|
7
|
+
data.tar.gz: 618916a01ea8ac5fb19188e1b10d15c56a40ed6648da422d5d48c16a93feb8a2ff1f5507ac88f62a08c0651a704fb5c2a5efa502d887b2df07b6eb1bca8f66a4
|
data/README.md
CHANGED
@@ -15,7 +15,6 @@ module Decidim
|
|
15
15
|
def call
|
16
16
|
return broadcast(:invalid) unless form.valid?
|
17
17
|
|
18
|
-
save_or_upload_file!
|
19
18
|
case action
|
20
19
|
when :register
|
21
20
|
register_users_async(remove_file: true)
|
@@ -36,20 +35,19 @@ module Decidim
|
|
36
35
|
attr_reader :form, :file, :organization, :user, :action
|
37
36
|
|
38
37
|
def register_users_async(options = {})
|
39
|
-
RegisterUsersJob.perform_later(
|
38
|
+
RegisterUsersJob.perform_later(blob.id, organization, user, form.authorization_handler, options)
|
40
39
|
end
|
41
40
|
|
42
41
|
def revoke_users_async(options = {})
|
43
|
-
RevokeUsersJob.perform_later(
|
42
|
+
RevokeUsersJob.perform_later(blob.id, organization, user, form.authorization_handler, options)
|
44
43
|
end
|
45
44
|
|
46
45
|
def authorize_users_async(options = {})
|
47
|
-
AuthorizeUsersJob.perform_later(
|
46
|
+
AuthorizeUsersJob.perform_later(blob.id, organization, user, form.authorization_handler, options)
|
48
47
|
end
|
49
48
|
|
50
|
-
def
|
51
|
-
|
52
|
-
CsvUploader.new(organization).store!(file)
|
49
|
+
def blob
|
50
|
+
@blob ||= ActiveStorage::Blob.create_and_upload!(io: file, filename: secure_name)
|
53
51
|
end
|
54
52
|
|
55
53
|
def secure_name
|
@@ -10,8 +10,8 @@ module Decidim
|
|
10
10
|
class BaseImportJob < ApplicationJob
|
11
11
|
queue_as :default
|
12
12
|
|
13
|
-
def perform(
|
14
|
-
@
|
13
|
+
def perform(blob_id, organization, current_user, authorization_handler, options = {})
|
14
|
+
@blob = ActiveStorage::Blob.find(blob_id)
|
15
15
|
@organization = organization
|
16
16
|
@current_user = current_user
|
17
17
|
@authorization_handler = authorization_handler
|
@@ -20,7 +20,7 @@ module Decidim
|
|
20
20
|
@emails = Parsers::MetadataParser.new(userslist).to_h
|
21
21
|
@instrumenter = Instrumenter.new(current_user)
|
22
22
|
|
23
|
-
Rails.logger.info "BaseImportJob: Processing file #{filename}"
|
23
|
+
Rails.logger.info "BaseImportJob: Processing file #{@blob.filename}"
|
24
24
|
process_users
|
25
25
|
send_email_notification
|
26
26
|
rescue StandardError => e
|
@@ -31,14 +31,10 @@ module Decidim
|
|
31
31
|
|
32
32
|
private
|
33
33
|
|
34
|
-
attr_reader :
|
34
|
+
attr_reader :blob, :emails, :organization, :current_user, :instrumenter, :authorization_handler
|
35
35
|
|
36
36
|
def userslist
|
37
|
-
|
38
|
-
|
39
|
-
@uploader = CsvUploader.new(organization)
|
40
|
-
@uploader.retrieve_from_store!(filename)
|
41
|
-
@userslist = @uploader.file.read.force_encoding("UTF-8")
|
37
|
+
@userslist ||= blob.download.force_encoding("UTF-8")
|
42
38
|
end
|
43
39
|
|
44
40
|
def send_email_notification
|
@@ -51,7 +47,7 @@ module Decidim
|
|
51
47
|
end
|
52
48
|
|
53
49
|
def remove_file!
|
54
|
-
|
50
|
+
blob.purge
|
55
51
|
end
|
56
52
|
end
|
57
53
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "stylesheets/decidim/direct_verifications/admin/authorizations";
|
data/config/assets.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# This file is located at `config/assets.rb` of your module.
|
4
|
+
|
5
|
+
# Define the base path of your module. Please note that `Rails.root` may not be
|
6
|
+
# used because we are not inside the Rails environment when this file is loaded.
|
7
|
+
base_path = File.expand_path("..", __dir__)
|
8
|
+
|
9
|
+
# Register an additional load path for webpack. All the assets within these
|
10
|
+
# directories will be available for inclusion within the Decidim assets. For
|
11
|
+
# example, if you have `app/packs/src/decidim/foo.js`, you can include that file
|
12
|
+
# in your JavaScript entrypoints (or other JavaScript files within Decidim)
|
13
|
+
# using `import "src/decidim/foo"` after you have registered the additional path
|
14
|
+
# as follows.
|
15
|
+
Decidim::Webpacker.register_path("#{base_path}/app/packs")
|
16
|
+
|
17
|
+
# Register the entrypoints for your module. These entrypoints can be included
|
18
|
+
# within your application using `javascript_pack_tag` and if you include any
|
19
|
+
# SCSS files within the entrypoints, they become available for inclusion using
|
20
|
+
# `stylesheet_pack_tag`.
|
21
|
+
Decidim::Webpacker.register_entrypoints(
|
22
|
+
decidim_direct_verifications: "#{base_path}/app/packs/entrypoints/decidim_direct_verifications.js",
|
23
|
+
decidim_direct_verifications_css: "#{base_path}/app/packs/entrypoints/decidim_direct_verifications.scss"
|
24
|
+
)
|
@@ -16,11 +16,8 @@ module Decidim
|
|
16
16
|
root to: "direct_verifications#index"
|
17
17
|
end
|
18
18
|
|
19
|
-
initializer "
|
20
|
-
|
21
|
-
direct_verifications_admin_manifest.js
|
22
|
-
direct_verifications_admin_manifest.css
|
23
|
-
)
|
19
|
+
initializer "decidim_notify.webpacker.assets_path" do
|
20
|
+
Decidim.register_assets_path File.expand_path("app/packs", root)
|
24
21
|
end
|
25
22
|
end
|
26
23
|
end
|
@@ -3,8 +3,8 @@
|
|
3
3
|
module Decidim
|
4
4
|
# This holds the decidim-direct_verifications version.
|
5
5
|
module DirectVerifications
|
6
|
-
VERSION = "1.
|
7
|
-
DECIDIM_VERSION = "0.
|
8
|
-
MIN_DECIDIM_VERSION = ">= 0.
|
6
|
+
VERSION = "1.1"
|
7
|
+
DECIDIM_VERSION = "0.26.0"
|
8
|
+
MIN_DECIDIM_VERSION = ">= 0.25.0"
|
9
9
|
end
|
10
10
|
end
|
data/package.json
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
{
|
2
|
+
"name": "decidim-verifications-direct_verifications",
|
3
|
+
"version": "1.1.0",
|
4
|
+
"description": "A tool for Decidim that allows to track time spent by volunteers doing any arbitrary task",
|
5
|
+
"scripts": {
|
6
|
+
"lint": "eslint -c .eslintrc.json --ext .js app/packs/",
|
7
|
+
"lint-fix": "eslint -c .eslintrc.json --ext .js app/packs/ --fix",
|
8
|
+
"stylelint": "stylelint **/*.scss",
|
9
|
+
"stylelint-fix": "stylelint **/*.scss --fix"
|
10
|
+
},
|
11
|
+
"repository": {
|
12
|
+
"type": "git",
|
13
|
+
"url": "git+https://github.com/Platoniq/decidim-verifications-direct_verifications.git"
|
14
|
+
},
|
15
|
+
"keywords": [
|
16
|
+
"decidim"
|
17
|
+
],
|
18
|
+
"author": "ivan@platoniq.net",
|
19
|
+
"license": "AGPL-3.0-or-later",
|
20
|
+
"bugs": {
|
21
|
+
"url": "https://github.com/Platoniq/decidim-verifications-direct_verifications/issues"
|
22
|
+
},
|
23
|
+
"homepage": "https://github.com/Platoniq/decidim-verifications-direct_verifications#readme",
|
24
|
+
"stylelint": {
|
25
|
+
"rules": {
|
26
|
+
"at-rule-empty-line-before": [
|
27
|
+
"always",
|
28
|
+
{
|
29
|
+
"except": [
|
30
|
+
"blockless-after-same-name-blockless",
|
31
|
+
"first-nested"
|
32
|
+
],
|
33
|
+
"ignore": [
|
34
|
+
"after-comment"
|
35
|
+
],
|
36
|
+
"ignoreAtRules": [
|
37
|
+
"else"
|
38
|
+
]
|
39
|
+
}
|
40
|
+
],
|
41
|
+
"at-rule-name-case": "lower",
|
42
|
+
"at-rule-semicolon-newline-after": "always",
|
43
|
+
"block-closing-brace-empty-line-before": "never",
|
44
|
+
"block-closing-brace-newline-after": "always",
|
45
|
+
"block-closing-brace-newline-before": "always-multi-line",
|
46
|
+
"block-closing-brace-space-before": "always-single-line",
|
47
|
+
"block-no-empty": true,
|
48
|
+
"block-opening-brace-newline-after": "always-multi-line",
|
49
|
+
"block-opening-brace-space-after": "always-single-line",
|
50
|
+
"block-opening-brace-space-before": "always",
|
51
|
+
"color-hex-case": "lower",
|
52
|
+
"color-hex-length": "short",
|
53
|
+
"color-no-invalid-hex": true,
|
54
|
+
"comment-empty-line-before": [
|
55
|
+
"always",
|
56
|
+
{
|
57
|
+
"except": [
|
58
|
+
"first-nested"
|
59
|
+
],
|
60
|
+
"ignore": [
|
61
|
+
"stylelint-commands"
|
62
|
+
]
|
63
|
+
}
|
64
|
+
],
|
65
|
+
"comment-no-empty": true,
|
66
|
+
"comment-whitespace-inside": "always",
|
67
|
+
"custom-property-empty-line-before": [
|
68
|
+
"always",
|
69
|
+
{
|
70
|
+
"except": [
|
71
|
+
"after-custom-property",
|
72
|
+
"first-nested"
|
73
|
+
],
|
74
|
+
"ignore": [
|
75
|
+
"after-comment",
|
76
|
+
"inside-single-line-block"
|
77
|
+
]
|
78
|
+
}
|
79
|
+
],
|
80
|
+
"declaration-bang-space-after": "never",
|
81
|
+
"declaration-bang-space-before": "always",
|
82
|
+
"declaration-block-no-duplicate-properties": [
|
83
|
+
true,
|
84
|
+
{
|
85
|
+
"ignore": [
|
86
|
+
"consecutive-duplicates-with-different-values"
|
87
|
+
]
|
88
|
+
}
|
89
|
+
],
|
90
|
+
"declaration-block-no-redundant-longhand-properties": true,
|
91
|
+
"declaration-block-no-shorthand-property-overrides": true,
|
92
|
+
"declaration-block-semicolon-newline-after": "always-multi-line",
|
93
|
+
"declaration-block-semicolon-space-after": "always-single-line",
|
94
|
+
"declaration-block-semicolon-space-before": "never",
|
95
|
+
"declaration-block-single-line-max-declarations": 1,
|
96
|
+
"declaration-block-trailing-semicolon": "always",
|
97
|
+
"declaration-colon-newline-after": "always-multi-line",
|
98
|
+
"declaration-colon-space-after": "always-single-line",
|
99
|
+
"declaration-colon-space-before": "never",
|
100
|
+
"declaration-empty-line-before": [
|
101
|
+
"always",
|
102
|
+
{
|
103
|
+
"except": [
|
104
|
+
"after-declaration",
|
105
|
+
"first-nested"
|
106
|
+
],
|
107
|
+
"ignore": [
|
108
|
+
"after-comment",
|
109
|
+
"inside-single-line-block"
|
110
|
+
]
|
111
|
+
}
|
112
|
+
],
|
113
|
+
"function-calc-no-unspaced-operator": true,
|
114
|
+
"function-comma-newline-after": "always-multi-line",
|
115
|
+
"function-comma-space-after": "always-single-line",
|
116
|
+
"function-comma-space-before": "never",
|
117
|
+
"function-linear-gradient-no-nonstandard-direction": true,
|
118
|
+
"function-max-empty-lines": 0,
|
119
|
+
"function-name-case": "lower",
|
120
|
+
"function-parentheses-newline-inside": "always-multi-line",
|
121
|
+
"function-parentheses-space-inside": "never-single-line",
|
122
|
+
"function-whitespace-after": "always",
|
123
|
+
"indentation": 2,
|
124
|
+
"keyframe-declaration-no-important": true,
|
125
|
+
"length-zero-no-unit": true,
|
126
|
+
"max-empty-lines": 1,
|
127
|
+
"media-feature-colon-space-after": "always",
|
128
|
+
"media-feature-colon-space-before": "never",
|
129
|
+
"media-feature-name-case": "lower",
|
130
|
+
"media-feature-name-no-unknown": true,
|
131
|
+
"media-feature-parentheses-space-inside": "never",
|
132
|
+
"media-feature-range-operator-space-after": "always",
|
133
|
+
"media-feature-range-operator-space-before": "always",
|
134
|
+
"media-query-list-comma-newline-after": "always-multi-line",
|
135
|
+
"media-query-list-comma-space-after": "always-single-line",
|
136
|
+
"media-query-list-comma-space-before": "never",
|
137
|
+
"no-empty-source": true,
|
138
|
+
"no-eol-whitespace": true,
|
139
|
+
"no-extra-semicolons": true,
|
140
|
+
"no-invalid-double-slash-comments": true,
|
141
|
+
"no-missing-end-of-source-newline": true,
|
142
|
+
"number-leading-zero": "never",
|
143
|
+
"number-no-trailing-zeros": true,
|
144
|
+
"property-case": "lower",
|
145
|
+
"property-no-unknown": true,
|
146
|
+
"rule-empty-line-before": [
|
147
|
+
"always-multi-line",
|
148
|
+
{
|
149
|
+
"except": [
|
150
|
+
"first-nested"
|
151
|
+
],
|
152
|
+
"ignore": [
|
153
|
+
"after-comment"
|
154
|
+
]
|
155
|
+
}
|
156
|
+
],
|
157
|
+
"selector-attribute-brackets-space-inside": "never",
|
158
|
+
"selector-attribute-operator-space-after": "never",
|
159
|
+
"selector-attribute-operator-space-before": "never",
|
160
|
+
"selector-combinator-space-after": "always",
|
161
|
+
"selector-combinator-space-before": "always",
|
162
|
+
"selector-descendant-combinator-no-non-space": true,
|
163
|
+
"selector-list-comma-newline-after": "always",
|
164
|
+
"selector-list-comma-space-before": "never",
|
165
|
+
"selector-max-empty-lines": 0,
|
166
|
+
"selector-pseudo-class-case": "lower",
|
167
|
+
"selector-pseudo-class-no-unknown": true,
|
168
|
+
"selector-pseudo-class-parentheses-space-inside": "never",
|
169
|
+
"selector-pseudo-element-case": "lower",
|
170
|
+
"selector-pseudo-element-colon-notation": "double",
|
171
|
+
"selector-pseudo-element-no-unknown": true,
|
172
|
+
"selector-type-case": "lower",
|
173
|
+
"selector-type-no-unknown": true,
|
174
|
+
"shorthand-property-no-redundant-values": true,
|
175
|
+
"string-no-newline": true,
|
176
|
+
"unit-case": "lower",
|
177
|
+
"unit-no-unknown": true,
|
178
|
+
"value-list-comma-newline-after": "always-multi-line",
|
179
|
+
"value-list-comma-space-after": "always-single-line",
|
180
|
+
"value-list-comma-space-before": "never",
|
181
|
+
"value-list-max-empty-lines": 0
|
182
|
+
}
|
183
|
+
},
|
184
|
+
"devDependencies": {
|
185
|
+
"eslint": "^7.32.0",
|
186
|
+
"eslint": "^7.25.0",
|
187
|
+
"eslint-config-prettier": "^8.2.0",
|
188
|
+
"eslint-config-standard": "^11.0.0",
|
189
|
+
"eslint-plugin-import": "^2.22.0",
|
190
|
+
"stylelint": "13.11.0"
|
191
|
+
}
|
192
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-direct_verifications
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: '1.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Vergés
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: decidim-admin
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.25.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.25.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: decidim-core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.25.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.25.0
|
41
41
|
description: Provides a verification method that also registers users directly in
|
42
42
|
the platform. Can be used to mass verificate user with other verification handlers
|
43
43
|
email:
|
@@ -49,10 +49,6 @@ files:
|
|
49
49
|
- LICENSE-AGPLv3.txt
|
50
50
|
- README.md
|
51
51
|
- Rakefile
|
52
|
-
- app/assets/config/direct_verifications_admin_manifest.css
|
53
|
-
- app/assets/config/direct_verifications_admin_manifest.js
|
54
|
-
- app/assets/javascripts/decidim/direct_verifications/verification/admin/direct_verifications_admin.js.es6
|
55
|
-
- app/assets/stylesheets/decidim/direct_verifications/authorizations.scss
|
56
52
|
- app/commands/decidim/direct_verifications/verification/confirm_user_authorization.rb
|
57
53
|
- app/commands/decidim/direct_verifications/verification/create_import.rb
|
58
54
|
- app/commands/decidim/direct_verifications/verification/destroy_user_authorization.rb
|
@@ -70,7 +66,10 @@ files:
|
|
70
66
|
- app/jobs/decidim/direct_verifications/revoke_users_job.rb
|
71
67
|
- app/mailers/decidim/direct_verifications/import_mailer.rb
|
72
68
|
- app/mailers/decidim/direct_verifications/stats.rb
|
73
|
-
- app/
|
69
|
+
- app/packs/entrypoints/decidim_direct_verifications.js
|
70
|
+
- app/packs/entrypoints/decidim_direct_verifications.scss
|
71
|
+
- app/packs/src/decidim/direct_verifications/admin/checkboxes.js
|
72
|
+
- app/packs/stylesheets/decidim/direct_verifications/admin/authorizations.scss
|
74
73
|
- app/views/decidim/direct_verifications/import_mailer/finished_processing.html.erb
|
75
74
|
- app/views/decidim/direct_verifications/import_mailer/finished_processing.text.erb
|
76
75
|
- app/views/decidim/direct_verifications/verification/admin/authorizations/index.html.erb
|
@@ -79,6 +78,7 @@ files:
|
|
79
78
|
- app/views/decidim/direct_verifications/verification/admin/stats/index.html.erb
|
80
79
|
- app/views/devise/mailer/direct_invite.html.erb
|
81
80
|
- app/views/devise/mailer/direct_invite.text.erb
|
81
|
+
- config/assets.rb
|
82
82
|
- config/initializers/mail_previews.rb
|
83
83
|
- config/locales/ca.yml
|
84
84
|
- config/locales/cs.yml
|
@@ -104,6 +104,7 @@ files:
|
|
104
104
|
- lib/decidim/direct_verifications/verification/engine.rb
|
105
105
|
- lib/decidim/direct_verifications/verification/workflow.rb
|
106
106
|
- lib/decidim/direct_verifications/version.rb
|
107
|
+
- package.json
|
107
108
|
homepage: https://github.com/Platoniq/decidim-verifications-direct_verifications
|
108
109
|
licenses:
|
109
110
|
- AGPL-3.0
|
@@ -1 +0,0 @@
|
|
1
|
-
//= link decidim/direct_verifications/verification/admin/direct_verifications_admin.js
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module DirectVerifications
|
5
|
-
class CsvUploader < ApplicationUploader
|
6
|
-
# Override the directory where uploaded files will be stored.
|
7
|
-
def store_dir
|
8
|
-
default_path = "uploads/direct-verifications/"
|
9
|
-
|
10
|
-
return File.join(Decidim.base_uploads_path, default_path) if Decidim.base_uploads_path.present?
|
11
|
-
|
12
|
-
default_path
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|