Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
open-source
aoz-003
Commits
43b37423
Verified
Commit
43b37423
authored
Oct 04, 2018
by
Kaspar Vollenweider
👻
Browse files
feat(semester_process): basic scaffold of the route and the views
parent
c3fc694a
Changes
19
Hide whitespace changes
Inline
Side-by-side
app/controllers/semester_processes_controller.rb
0 → 100644
View file @
43b37423
class
SemesterProcessesController
<
ApplicationController
before_action
:set_semester_process
,
only:
[
:show
,
:edit
,
:update
,
:destroy
]
def
index
authorize
SemesterProcess
@semester_processes
=
SemesterProcess
.
all
.
paginate
(
page:
params
[
:page
])
end
def
show
;
end
def
new
@semester_process
=
SemesterProcess
.
new
authorize
@semester_process
end
def
edit
;
end
def
create
@semester_process
=
SemesterProcess
.
new
(
semester_process_params
)
@semester_process
.
creator
=
current_user
authorize
@semester_process
if
@semester_process
.
save
redirect_to
@semester_process
,
notice:
'Semester process was successfully created.'
else
render
:new
end
end
def
update
if
@semester_process
.
update
(
semester_process_params
)
redirect_to
@semester_process
,
notice:
'Semester process was successfully updated.'
else
render
:edit
end
end
def
destroy
if
@semester_process
.
destroy
redirect_to
semester_processes_url
,
notice:
'Semester process was successfully destroyed.'
else
redirect_to
semester_processes_url
,
notice:
'Failure notice'
end
end
private
def
set_semester_process
@semester_process
=
SemesterProcess
.
find
(
params
[
:id
])
authorize
@semester_process
end
def
semester_process_params
params
.
require
(
:semester_process
).
permit
(
:period_start
,
:period_end
)
end
end
app/models/semester_process.rb
0 → 100644
View file @
43b37423
class
SemesterProcess
<
ApplicationRecord
belongs_to
:creator
,
->
{
with_deleted
},
class_name:
'User'
,
inverse_of:
'semester_processes'
end
app/models/user.rb
View file @
43b37423
...
...
@@ -79,8 +79,11 @@ class User < ApplicationRecord
has_many
:mailing_processes_submitted
,
through: :mailing_volunteer_processes_submitted
,
source: :process_submitted_by
has_many
:semester_processes
,
inverse_of:
'creator'
,
foreign_key:
'creator_id'
has_and_belongs_to_many
:department
# Roles definition
SUPERADMIN
=
'superadmin'
.
freeze
SOCIAL_WORKER
=
'social_worker'
.
freeze
...
...
app/policies/semester_process_policy.rb
0 → 100644
View file @
43b37423
class
SemesterProcessPolicy
<
ApplicationPolicy
class
Scope
<
ApplicationScope
def
resolve
return
all
if
superadmin?
none
end
end
# Actions
alias_method
:index?
,
:superadmin?
alias_method
:new?
,
:superadmin?
alias_method
:show?
,
:superadmin?
alias_method
:edit?
,
:superadmin?
alias_method
:create?
,
:superadmin?
alias_method
:update?
,
:superadmin?
alias_method
:destroy?
,
:superadmin?
end
app/views/application/_navigation.html.slim
View file @
43b37423
...
...
@@ -21,6 +21,8 @@ nav.navbar.navbar-top.hidden-print
li
=
link_to
'Begleitungen'
,
assignments_path
-
if
policy
(
GroupOffer
).
index?
li
=
link_to
'Gruppenangebote'
,
group_offers_path
-
if
policy
(
SemesterProcess
).
index?
li
=
link_to
'Semester Prozesse'
,
semester_processes_path
-
if
policy
(
ReminderMailing
).
index?
li
=
link_to
'Erinnerungs-Emails'
,
reminder_mailings_path
-
if
policy
(
Event
).
index?
...
...
app/views/semester_processes/_form.html.slim
0 → 100644
View file @
43b37423
=
simple_form_for
(
@semester_process
)
do
|
f
|
=
simple_error_notice
f
.row
.col-xs-12
=
f
.
input
:period
,
as: :date_range_picker
,
label:
false
.row
.col-xs-12
=
f
.
button
:submit
app/views/semester_processes/_index_nav.html.slim
0 → 100644
View file @
43b37423
nav
.navbar.section-navigation
hr
ul
.list-inline
li
=
button_link
'Neuen Semester Prozess erstellen'
,
new_semester_process_path
,
dimension:
'sm'
hr
app/views/semester_processes/edit.html.slim
0 → 100644
View file @
43b37423
h1
=
t_title
(
:edit
)
=
render
'form'
=
form_navigation_btn
:show
=
form_navigation_btn
:back
app/views/semester_processes/index.html.slim
0 → 100644
View file @
43b37423
h1
=
t_title
(
:index
)
=
render
'index_nav'
=
bootstrap_paginate
(
@semester_processes
)
.table-responsive
table
.table.table-striped
thead
tr
th
.hidden-print
Aktionen
th
=
t_attr
(
:creator
)
th
=
t_attr
(
:period
)
th
=
t_attr
(
:created_at
)
tbody
-
@semester_processes
.
each
do
|
semester_process
|
tr
td
.index-action-cell.hidden-print
=
link_to
t_action
(
:show
),
semester_process
=
link_to
t_action
(
:edit
),
edit_semester_process_path
(
semester_process
)
=
link_to
navigation_glyph
(
:delete
),
semester_process_path
(
semester_process
),
confirm_deleting
(
semester_process
)
td
=
semester_process
.
creator
td
=
semester_process
.
period_start
td
=
semester_process
.
period_end
=
bootstrap_paginate
(
@semester_processes
)
=
render
'index_nav'
app/views/semester_processes/new.html.slim
0 → 100644
View file @
43b37423
h1
=
t_title
(
:new
)
=
render
'form'
=
form_navigation_btn
:back
app/views/semester_processes/show.html.slim
0 → 100644
View file @
43b37423
h1
=
t_title
(
:new
)
p
strong
User:
=
@semester_process
.
creator
p
strong
Semester
start:
=
@semester_process
.
period_start
p
strong
Semester
end:
=
@semester_process
.
period_end
=
form_navigation_btn
:edit
=
form_navigation_btn
:back
config/locales/de.yml
View file @
43b37423
...
...
@@ -440,6 +440,11 @@ de:
kind
:
Art
body
:
Text
subject
:
Betreff
semester_process
:
period
:
Semester
period_start
:
Semester anfang
period_end
:
Semester ende
creator
:
Ersteller/in
user
:
<<
:
*id-generic_keys
clients
:
Kunden/innen
...
...
@@ -554,6 +559,7 @@ de:
profile
:
Profil
relative
:
Verwante/r
reminder_mailing
:
Erinnerungs-Mailing
semester_process
:
Semester Prozess
trial_feedback
:
Probezeit Feedback
user
:
Benutzer/in
volunteer
:
Freiwillige/n
...
...
config/routes.rb
View file @
43b37423
...
...
@@ -68,6 +68,7 @@ Rails.application.routes.draw do
end
resources
:feedbacks
,
only:
[
:new
,
:create
]
resources
:group_assignments
,
only:
[
:show
,
:create
,
:edit
,
:update
],
concerns:
[
:submit_feedback
,
:termination_actions
]
do
put
:set_end_today
,
on: :member
...
...
@@ -95,6 +96,8 @@ Rails.application.routes.draw do
get
:send_half_year
,
on: :member
end
resources
:semester_processes
resources
:volunteer_applications
,
only:
[
:new
,
:create
]
do
get
:thanks
,
on: :collection
end
...
...
db/migrate/20181004121332_create_semester_processes.rb
0 → 100644
View file @
43b37423
class
CreateSemesterProcesses
<
ActiveRecord
::
Migration
[
5.1
]
def
change
create_table
:semester_processes
do
|
t
|
t
.
references
:creator
,
references: :users
,
index:
true
t
.
datetime
:period_start
t
.
datetime
:period_end
t
.
datetime
:deleted_at
,
index:
true
t
.
timestamps
end
end
end
db/schema.rb
View file @
43b37423
...
...
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
2018
0713084814
)
do
ActiveRecord
::
Schema
.
define
(
version:
2018
1004121332
)
do
# These are extensions that must be enabled in order to support this database
enable_extension
"plpgsql"
...
...
@@ -284,7 +284,7 @@ ActiveRecord::Schema.define(version: 20180713084814) do
end
create_table
"events"
,
force: :cascade
do
|
t
|
t
.
integer
"kind"
t
.
integer
"kind"
,
null:
false
t
.
date
"date"
t
.
time
"start_time"
t
.
time
"end_time"
...
...
@@ -624,6 +624,17 @@ ActiveRecord::Schema.define(version: 20180713084814) do
t
.
index
[
"deleted_at"
],
name:
"index_reminder_mailings_on_deleted_at"
end
create_table
"semester_processes"
,
force: :cascade
do
|
t
|
t
.
bigint
"creator_id"
t
.
datetime
"period_start"
t
.
datetime
"period_end"
t
.
datetime
"deleted_at"
t
.
datetime
"created_at"
,
null:
false
t
.
datetime
"updated_at"
,
null:
false
t
.
index
[
"creator_id"
],
name:
"index_semester_processes_on_creator_id"
t
.
index
[
"deleted_at"
],
name:
"index_semester_processes_on_deleted_at"
end
create_table
"trial_feedbacks"
,
force: :cascade
do
|
t
|
t
.
text
"body"
t
.
integer
"trial_feedbackable_id"
...
...
test/controllers/semester_processes_controller_test.rb
0 → 100644
View file @
43b37423
require
'test_helper'
class
SemesterProcessesControllerTest
<
ActionDispatch
::
IntegrationTest
setup
do
@semester_process
=
semester_processes
(
:one
)
end
test
"should get index"
do
get
semester_processes_url
assert_response
:success
end
test
"should get new"
do
get
new_semester_process_url
assert_response
:success
end
test
"should create semester_process"
do
assert_difference
(
'SemesterProcess.count'
)
do
post
semester_processes_url
,
params:
{
semester_process:
{
semester_end:
@semester_process
.
semester_end
,
semester_start:
@semester_process
.
semester_start
,
user_id:
@semester_process
.
user_id
}
}
end
assert_redirected_to
semester_process_url
(
SemesterProcess
.
last
)
end
test
"should show semester_process"
do
get
semester_process_url
(
@semester_process
)
assert_response
:success
end
test
"should get edit"
do
get
edit_semester_process_url
(
@semester_process
)
assert_response
:success
end
test
"should update semester_process"
do
patch
semester_process_url
(
@semester_process
),
params:
{
semester_process:
{
semester_end:
@semester_process
.
semester_end
,
semester_start:
@semester_process
.
semester_start
,
user_id:
@semester_process
.
user_id
}
}
assert_redirected_to
semester_process_url
(
@semester_process
)
end
test
"should destroy semester_process"
do
assert_difference
(
'SemesterProcess.count'
,
-
1
)
do
delete
semester_process_url
(
@semester_process
)
end
assert_redirected_to
semester_processes_url
end
end
test/factories/semester_processes.rb
0 → 100644
View file @
43b37423
FactoryBot
.
define
do
factory
:semester_process
do
association
:creator
,
factory: :user
period_start
{
Time
.
zone
.
local
(
2017
,
12
,
1
).
beginning_of_day
}
period_end
{
Time
.
zone
.
local
(
2018
,
5
,
30
).
end_of_month
}
end
end
test/models/semester_process_test.rb
0 → 100644
View file @
43b37423
require
'test_helper'
class
SemesterProcessTest
<
ActiveSupport
::
TestCase
# TODO: Write model test
end
test/system/semester_processes_test.rb
0 → 100644
View file @
43b37423
require
'application_system_test_case'
class
SemesterProcessesTest
<
ApplicationSystemTestCase
# TODO: Write system test
end
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment