lesli_audit 0.5.0 → 1.0.0
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/app/assets/config/lesli_audit_manifest.js +0 -1
- data/app/assets/javascripts/lesli_audit/application.js +1 -4081
- data/{db/migrate/v1.0/0503050210_create_lesli_audit_dashboard_components.rb → app/assets/stylesheets/lesli_audit/application.css} +6 -24
- data/app/controllers/lesli_audit/analytics_controller.rb +3 -13
- data/app/controllers/lesli_audit/dashboards_controller.rb +2 -0
- data/app/controllers/lesli_audit/requests_controller.rb +1 -6
- data/app/controllers/lesli_audit/users_controller.rb +32 -4
- data/app/interfaces/lesli_audit/logger_interface.rb +132 -0
- data/app/models/lesli_audit/dashboard.rb +0 -25
- data/app/services/lesli_audit/account/activity_services.rb +2 -2
- data/app/services/lesli_audit/analytic_service.rb +12 -7
- data/app/services/lesli_audit/analytics/trend_services.rb +2 -2
- data/app/services/lesli_audit/analytics/visitor_service.rb +155 -153
- data/app/services/lesli_audit/user_service.rb +71 -0
- data/app/services/lesli_audit/users/activity_services.rb +2 -2
- data/app/services/lesli_audit/users/log_services.rb +2 -2
- data/app/services/lesli_audit/users/registration_services.rb +2 -2
- data/app/services/lesli_audit/users/role_services.rb +2 -2
- data/app/services/lesli_audit/users/working_hour_services.rb +2 -2
- data/app/views/lesli_audit/analytics/index.html.erb +42 -1
- data/app/views/lesli_audit/dashboards/edit.html.erb +12 -1
- data/app/views/lesli_audit/dashboards/index.html.erb +2 -0
- data/app/views/lesli_audit/dashboards/new.html.erb +2 -0
- data/app/views/lesli_audit/dashboards/show.html.erb +33 -1
- data/app/views/lesli_audit/partials/{_engine-navigation.html.erb → _navigation.html.erb} +4 -4
- data/app/views/lesli_audit/requests/index.html.erb +23 -1
- data/app/views/lesli_audit/users/index.html.erb +14 -1
- data/config/locales/translations.en.yml +1 -19
- data/config/locales/translations.es.yml +1 -19
- data/config/locales/translations.fr.yml +2 -0
- data/config/locales/translations.it.yml +2 -0
- data/config/locales/translations.pt.yml +2 -0
- data/config/routes.rb +5 -21
- data/db/migrate/v1.0/0503000110_create_lesli_audit_accounts.rb +1 -6
- data/db/migrate/v1.0/0503050110_create_lesli_audit_dashboards.rb +1 -15
- data/db/seeds.rb +7 -10
- data/lib/lesli_audit/engine.rb +2 -0
- data/lib/lesli_audit/version.rb +2 -2
- data/{app/assets/stylesheets/lesli_audit → lib/scss}/application.scss +0 -4
- data/lib/vue/application.js +14 -14
- data/lib/vue/apps/analytics/index.vue +1 -1
- data/lib/vue/apps/analytics/trends.vue +2 -3
- data/lib/vue/apps/dashboards/components/roles.vue +3 -3
- data/lib/vue/apps/dashboards/components/users.vue +3 -3
- data/lib/vue/apps/dashboards/show.vue +1 -1
- data/lib/vue/apps/requests/index.vue +1 -1
- data/lib/vue/apps/users/index.vue +80 -22
- data/lib/vue/apps/users/registrations.vue +21 -46
- data/lib/vue/components/requests.vue +1 -1
- data/lib/vue/components/visitors.vue +4 -4
- data/lib/vue/stores/analytics.js +24 -9
- data/lib/vue/stores/translations.json +114 -0
- data/lib/vue/stores/users.js +56 -0
- metadata +17 -15
- data/app/assets/stylesheets/lesli_audit/dashboard.scss +0 -0
- data/app/controllers/lesli_audit/dashboard/components_controller.rb +0 -60
- data/db/seed/production.rb +0 -0
- data/db/seed/test.rb +0 -0
- /data/db/seed/{development.rb → requests.rb} +0 -0
@@ -5,6 +5,12 @@
|
|
5
5
|
"navigation_logout": "Logout",
|
6
6
|
"navigation_my_profile": "My profile"
|
7
7
|
},
|
8
|
+
"dashboards": {
|
9
|
+
"column_default": "Default",
|
10
|
+
"column_name": "Name",
|
11
|
+
"title": "Dashboards",
|
12
|
+
"view_add_component": "Add component"
|
13
|
+
},
|
8
14
|
"shared": {
|
9
15
|
"button_add_new": "Add new",
|
10
16
|
"button_delete": "Delete",
|
@@ -14,6 +20,9 @@
|
|
14
20
|
"button_save": "Save",
|
15
21
|
"button_settings": "Settings",
|
16
22
|
"button_show": "Show",
|
23
|
+
"message_operation_error": "Operation failed. Please try again.",
|
24
|
+
"message_operation_success": "Operation completed successfully",
|
25
|
+
"toolbar_search": "Search...",
|
17
26
|
"view_discussions": "Discussions",
|
18
27
|
"view_files": "Files",
|
19
28
|
"view_quick_actions": "Quick actions",
|
@@ -28,6 +37,12 @@
|
|
28
37
|
"navigation_logout": "Cerrar sesión",
|
29
38
|
"navigation_my_profile": "Mi perfil"
|
30
39
|
},
|
40
|
+
"dashboards": {
|
41
|
+
"column_default": "Default",
|
42
|
+
"column_name": "Nombre",
|
43
|
+
"title": "Dashboards",
|
44
|
+
"view_add_component": "Agregar componente"
|
45
|
+
},
|
31
46
|
"shared": {
|
32
47
|
"button_add_new": "Agregar nuevo",
|
33
48
|
"button_delete": "Eliminar",
|
@@ -37,6 +52,9 @@
|
|
37
52
|
"button_save": "Guardar",
|
38
53
|
"button_settings": "Configuración",
|
39
54
|
"button_show": "Ver",
|
55
|
+
"message_operation_error": "Operación fallida. Por favor, inténtelo de nuevo.",
|
56
|
+
"message_operation_success": "Operacion realizada satisfactoriamente",
|
57
|
+
"toolbar_search": "Buscar...",
|
40
58
|
"view_discussions": "Discusiones",
|
41
59
|
"view_files": "Archivos",
|
42
60
|
"view_quick_actions": "Acciones rapidas",
|
@@ -44,5 +62,101 @@
|
|
44
62
|
"view_status_inactive": "Inactivo"
|
45
63
|
}
|
46
64
|
}
|
65
|
+
},
|
66
|
+
"fr": {
|
67
|
+
"lesli": {
|
68
|
+
"application": {
|
69
|
+
"navigation_logout": ":lesli.application.navigation_logout:",
|
70
|
+
"navigation_my_profile": ":lesli.application.navigation_my_profile:"
|
71
|
+
},
|
72
|
+
"dashboards": {
|
73
|
+
"column_default": ":lesli.dashboards.column_default:",
|
74
|
+
"column_name": ":lesli.dashboards.column_name:",
|
75
|
+
"title": ":lesli.dashboards.title:",
|
76
|
+
"view_add_component": ":lesli.dashboards.view_add_component:"
|
77
|
+
},
|
78
|
+
"shared": {
|
79
|
+
"button_add_new": ":lesli.shared.button_add_new:",
|
80
|
+
"button_delete": ":lesli.shared.button_delete:",
|
81
|
+
"button_edit": ":lesli.shared.button_edit:",
|
82
|
+
"button_list": ":lesli.shared.button_list:",
|
83
|
+
"button_reload": ":lesli.shared.button_reload:",
|
84
|
+
"button_save": ":lesli.shared.button_save:",
|
85
|
+
"button_settings": ":lesli.shared.button_settings:",
|
86
|
+
"button_show": ":lesli.shared.button_show:",
|
87
|
+
"message_operation_error": ":lesli.shared.message_operation_error:",
|
88
|
+
"message_operation_success": ":lesli.shared.message_operation_success:",
|
89
|
+
"toolbar_search": ":lesli.shared.toolbar_search:",
|
90
|
+
"view_discussions": ":lesli.shared.view_discussions:",
|
91
|
+
"view_files": ":lesli.shared.view_files:",
|
92
|
+
"view_quick_actions": ":lesli.shared.view_quick_actions:",
|
93
|
+
"view_status_active": ":lesli.shared.view_status_active:",
|
94
|
+
"view_status_inactive": ":lesli.shared.view_status_inactive:"
|
95
|
+
}
|
96
|
+
}
|
97
|
+
},
|
98
|
+
"it": {
|
99
|
+
"lesli": {
|
100
|
+
"application": {
|
101
|
+
"navigation_logout": ":lesli.application.navigation_logout:",
|
102
|
+
"navigation_my_profile": ":lesli.application.navigation_my_profile:"
|
103
|
+
},
|
104
|
+
"dashboards": {
|
105
|
+
"column_default": ":lesli.dashboards.column_default:",
|
106
|
+
"column_name": ":lesli.dashboards.column_name:",
|
107
|
+
"title": ":lesli.dashboards.title:",
|
108
|
+
"view_add_component": ":lesli.dashboards.view_add_component:"
|
109
|
+
},
|
110
|
+
"shared": {
|
111
|
+
"button_add_new": ":lesli.shared.button_add_new:",
|
112
|
+
"button_delete": ":lesli.shared.button_delete:",
|
113
|
+
"button_edit": ":lesli.shared.button_edit:",
|
114
|
+
"button_list": ":lesli.shared.button_list:",
|
115
|
+
"button_reload": ":lesli.shared.button_reload:",
|
116
|
+
"button_save": ":lesli.shared.button_save:",
|
117
|
+
"button_settings": ":lesli.shared.button_settings:",
|
118
|
+
"button_show": ":lesli.shared.button_show:",
|
119
|
+
"message_operation_error": ":lesli.shared.message_operation_error:",
|
120
|
+
"message_operation_success": ":lesli.shared.message_operation_success:",
|
121
|
+
"toolbar_search": ":lesli.shared.toolbar_search:",
|
122
|
+
"view_discussions": ":lesli.shared.view_discussions:",
|
123
|
+
"view_files": ":lesli.shared.view_files:",
|
124
|
+
"view_quick_actions": ":lesli.shared.view_quick_actions:",
|
125
|
+
"view_status_active": ":lesli.shared.view_status_active:",
|
126
|
+
"view_status_inactive": ":lesli.shared.view_status_inactive:"
|
127
|
+
}
|
128
|
+
}
|
129
|
+
},
|
130
|
+
"pt": {
|
131
|
+
"lesli": {
|
132
|
+
"application": {
|
133
|
+
"navigation_logout": ":lesli.application.navigation_logout:",
|
134
|
+
"navigation_my_profile": ":lesli.application.navigation_my_profile:"
|
135
|
+
},
|
136
|
+
"dashboards": {
|
137
|
+
"column_default": ":lesli.dashboards.column_default:",
|
138
|
+
"column_name": ":lesli.dashboards.column_name:",
|
139
|
+
"title": ":lesli.dashboards.title:",
|
140
|
+
"view_add_component": ":lesli.dashboards.view_add_component:"
|
141
|
+
},
|
142
|
+
"shared": {
|
143
|
+
"button_add_new": ":lesli.shared.button_add_new:",
|
144
|
+
"button_delete": ":lesli.shared.button_delete:",
|
145
|
+
"button_edit": ":lesli.shared.button_edit:",
|
146
|
+
"button_list": ":lesli.shared.button_list:",
|
147
|
+
"button_reload": ":lesli.shared.button_reload:",
|
148
|
+
"button_save": ":lesli.shared.button_save:",
|
149
|
+
"button_settings": ":lesli.shared.button_settings:",
|
150
|
+
"button_show": ":lesli.shared.button_show:",
|
151
|
+
"message_operation_error": ":lesli.shared.message_operation_error:",
|
152
|
+
"message_operation_success": ":lesli.shared.message_operation_success:",
|
153
|
+
"toolbar_search": ":lesli.shared.toolbar_search:",
|
154
|
+
"view_discussions": ":lesli.shared.view_discussions:",
|
155
|
+
"view_files": ":lesli.shared.view_files:",
|
156
|
+
"view_quick_actions": ":lesli.shared.view_quick_actions:",
|
157
|
+
"view_status_active": ":lesli.shared.view_status_active:",
|
158
|
+
"view_status_inactive": ":lesli.shared.view_status_inactive:"
|
159
|
+
}
|
160
|
+
}
|
47
161
|
}
|
48
162
|
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
/*
|
2
|
+
|
3
|
+
Lesli
|
4
|
+
|
5
|
+
Copyright (c) 2023, Lesli Technologies, S. A.
|
6
|
+
|
7
|
+
This program is free software: you can redistribute it and/or modify
|
8
|
+
it under the terms of the GNU General Public License as published by
|
9
|
+
the Free Software Foundation, either version 3 of the License, or
|
10
|
+
(at your option) any later version.
|
11
|
+
|
12
|
+
This program is distributed in the hope that it will be useful,
|
13
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
GNU General Public License for more details.
|
16
|
+
|
17
|
+
You should have received a copy of the GNU General Public License
|
18
|
+
along with this program. If not, see http://www.gnu.org/licenses/.
|
19
|
+
|
20
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
21
|
+
|
22
|
+
Made with ♥ by LesliTech
|
23
|
+
Building a better future, one line of code at a time.
|
24
|
+
|
25
|
+
@contact hello@lesli.tech
|
26
|
+
@website https://www.lesli.tech
|
27
|
+
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
28
|
+
|
29
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
30
|
+
// ·
|
31
|
+
*/
|
32
|
+
|
33
|
+
|
34
|
+
// ·
|
35
|
+
import { defineStore } from "pinia"
|
36
|
+
|
37
|
+
|
38
|
+
// ·
|
39
|
+
export const useUsers = defineStore("audit.users", {
|
40
|
+
state: () => {
|
41
|
+
return {
|
42
|
+
registrations: []
|
43
|
+
}
|
44
|
+
},
|
45
|
+
actions: {
|
46
|
+
|
47
|
+
getRegistrations() {
|
48
|
+
this.registrations = []
|
49
|
+
this.http.get(this.url.audit("users/registrations")).then(result => {
|
50
|
+
this.registrations = result
|
51
|
+
}).catch(error => {
|
52
|
+
console.log(error)
|
53
|
+
})
|
54
|
+
}
|
55
|
+
}
|
56
|
+
})
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lesli_audit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Lesli Development Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: useragent
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.16.10
|
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:
|
26
|
+
version: 0.16.10
|
27
27
|
description: System logs & activities analytics for The Lesli Framework
|
28
28
|
email:
|
29
29
|
- hello@lesli.tech
|
@@ -35,12 +35,10 @@ files:
|
|
35
35
|
- app/assets/config/lesli_audit_manifest.js
|
36
36
|
- app/assets/images/lesli_audit/audit-logo.svg
|
37
37
|
- app/assets/javascripts/lesli_audit/application.js
|
38
|
-
- app/assets/stylesheets/lesli_audit/application.
|
39
|
-
- app/assets/stylesheets/lesli_audit/dashboard.scss
|
38
|
+
- app/assets/stylesheets/lesli_audit/application.css
|
40
39
|
- app/controllers/lesli_audit/accounts_controller.rb
|
41
40
|
- app/controllers/lesli_audit/analytics_controller.rb
|
42
41
|
- app/controllers/lesli_audit/application_controller.rb
|
43
|
-
- app/controllers/lesli_audit/dashboard/components_controller.rb
|
44
42
|
- app/controllers/lesli_audit/dashboards_controller.rb
|
45
43
|
- app/controllers/lesli_audit/requests_controller.rb
|
46
44
|
- app/controllers/lesli_audit/users_controller.rb
|
@@ -51,6 +49,7 @@ files:
|
|
51
49
|
- app/helpers/lesli_audit/dashboards_helper.rb
|
52
50
|
- app/helpers/lesli_audit/requests_helper.rb
|
53
51
|
- app/helpers/lesli_audit/users_helper.rb
|
52
|
+
- app/interfaces/lesli_audit/logger_interface.rb
|
54
53
|
- app/jobs/lesli_audit/application_job.rb
|
55
54
|
- app/mailers/lesli_audit/application_mailer.rb
|
56
55
|
- app/models/lesli_audit/account.rb
|
@@ -68,6 +67,7 @@ files:
|
|
68
67
|
- app/services/lesli_audit/analytics/trend_services.rb
|
69
68
|
- app/services/lesli_audit/analytics/visitor_service.rb
|
70
69
|
- app/services/lesli_audit/request_service.rb
|
70
|
+
- app/services/lesli_audit/user_service.rb
|
71
71
|
- app/services/lesli_audit/users/activity_services.rb
|
72
72
|
- app/services/lesli_audit/users/log_services.rb
|
73
73
|
- app/services/lesli_audit/users/registration_services.rb
|
@@ -97,7 +97,7 @@ files:
|
|
97
97
|
- app/views/lesli_audit/dashboards/index.html.erb
|
98
98
|
- app/views/lesli_audit/dashboards/new.html.erb
|
99
99
|
- app/views/lesli_audit/dashboards/show.html.erb
|
100
|
-
- app/views/lesli_audit/partials/
|
100
|
+
- app/views/lesli_audit/partials/_navigation.html.erb
|
101
101
|
- app/views/lesli_audit/requests/_form.html.erb
|
102
102
|
- app/views/lesli_audit/requests/_request.html.erb
|
103
103
|
- app/views/lesli_audit/requests/edit.html.erb
|
@@ -112,19 +112,20 @@ files:
|
|
112
112
|
- app/views/lesli_audit/users/show.html.erb
|
113
113
|
- config/locales/translations.en.yml
|
114
114
|
- config/locales/translations.es.yml
|
115
|
+
- config/locales/translations.fr.yml
|
116
|
+
- config/locales/translations.it.yml
|
117
|
+
- config/locales/translations.pt.yml
|
115
118
|
- config/routes.rb
|
116
119
|
- db/migrate/v1.0/0503000110_create_lesli_audit_accounts.rb
|
117
120
|
- db/migrate/v1.0/0503050110_create_lesli_audit_dashboards.rb
|
118
|
-
- db/migrate/v1.0/0503050210_create_lesli_audit_dashboard_components.rb
|
119
121
|
- db/migrate/v1.0/0503100010_create_lesli_audit_account_requests.rb
|
120
122
|
- db/migrate/v1.0/0503110010_create_lesli_audit_user_requests.rb
|
121
|
-
- db/seed/
|
122
|
-
- db/seed/production.rb
|
123
|
-
- db/seed/test.rb
|
123
|
+
- db/seed/requests.rb
|
124
124
|
- db/seeds.rb
|
125
125
|
- lib/lesli_audit.rb
|
126
126
|
- lib/lesli_audit/engine.rb
|
127
127
|
- lib/lesli_audit/version.rb
|
128
|
+
- lib/scss/application.scss
|
128
129
|
- lib/tasks/lesli_audit_tasks.rake
|
129
130
|
- lib/vue/application.js
|
130
131
|
- lib/vue/apps/accounts/activities.vue
|
@@ -150,6 +151,7 @@ files:
|
|
150
151
|
- lib/vue/stores/security/password.js
|
151
152
|
- lib/vue/stores/security/session.js
|
152
153
|
- lib/vue/stores/translations.json
|
154
|
+
- lib/vue/stores/users.js
|
153
155
|
- lib/vue/stores/users/activities.js
|
154
156
|
- lib/vue/stores/users/logs.js
|
155
157
|
- lib/vue/stores/users/registrations.js
|
@@ -172,14 +174,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
172
174
|
requirements:
|
173
175
|
- - ">="
|
174
176
|
- !ruby/object:Gem::Version
|
175
|
-
version:
|
177
|
+
version: '0'
|
176
178
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
177
179
|
requirements:
|
178
180
|
- - ">="
|
179
181
|
- !ruby/object:Gem::Version
|
180
182
|
version: '0'
|
181
183
|
requirements: []
|
182
|
-
rubygems_version: 3.
|
184
|
+
rubygems_version: 3.4.19
|
183
185
|
signing_key:
|
184
186
|
specification_version: 4
|
185
187
|
summary: System logs & activities analytics for The Lesli Framework
|
File without changes
|
@@ -1,60 +0,0 @@
|
|
1
|
-
module LesliAudit
|
2
|
-
class Dashboard::ComponentsController < ApplicationController
|
3
|
-
before_action :set_dashboard_component, only: %i[ show edit update destroy ]
|
4
|
-
|
5
|
-
# GET /dashboard/components
|
6
|
-
def index
|
7
|
-
@dashboard_components = Dashboard::Component.all
|
8
|
-
end
|
9
|
-
|
10
|
-
# GET /dashboard/components/1
|
11
|
-
def show
|
12
|
-
end
|
13
|
-
|
14
|
-
# GET /dashboard/components/new
|
15
|
-
def new
|
16
|
-
@dashboard_component = Dashboard::Component.new
|
17
|
-
end
|
18
|
-
|
19
|
-
# GET /dashboard/components/1/edit
|
20
|
-
def edit
|
21
|
-
end
|
22
|
-
|
23
|
-
# POST /dashboard/components
|
24
|
-
def create
|
25
|
-
@dashboard_component = Dashboard::Component.new(dashboard_component_params)
|
26
|
-
|
27
|
-
if @dashboard_component.save
|
28
|
-
redirect_to @dashboard_component, notice: "Component was successfully created."
|
29
|
-
else
|
30
|
-
render :new, status: :unprocessable_entity
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
# PATCH/PUT /dashboard/components/1
|
35
|
-
def update
|
36
|
-
if @dashboard_component.update(dashboard_component_params)
|
37
|
-
redirect_to @dashboard_component, notice: "Component was successfully updated.", status: :see_other
|
38
|
-
else
|
39
|
-
render :edit, status: :unprocessable_entity
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
# DELETE /dashboard/components/1
|
44
|
-
def destroy
|
45
|
-
@dashboard_component.destroy
|
46
|
-
redirect_to dashboard_components_url, notice: "Component was successfully destroyed.", status: :see_other
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
# Use callbacks to share common setup or constraints between actions.
|
51
|
-
def set_dashboard_component
|
52
|
-
@dashboard_component = Dashboard::Component.find(params[:id])
|
53
|
-
end
|
54
|
-
|
55
|
-
# Only allow a list of trusted parameters through.
|
56
|
-
def dashboard_component_params
|
57
|
-
params.fetch(:dashboard_component, {})
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
data/db/seed/production.rb
DELETED
File without changes
|
data/db/seed/test.rb
DELETED
File without changes
|
File without changes
|