ecm_courses2_backend 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 728d1f9fa3e3d0feb05dfaeec95e0ea033434748
4
- data.tar.gz: 926bb1f5b073e9f77ffc0ce46e753bd17374fe20
3
+ metadata.gz: 61bae19408b79cc2c47436c3cd41ccaf776dc107
4
+ data.tar.gz: bef115ef9cf408f7aa6acb640756dc80c1e118a9
5
5
  SHA512:
6
- metadata.gz: e931199b583604580f6e88d144a6c9fdb2a3594eef40a5c29ce21d8d5ec156dd88b95f25b235cbcd885a869ed9667b5816576e845e23e19524628e14d98b3d5c
7
- data.tar.gz: 64cc8c7b4ebbd377a301a726d9e7f0539a626a10d68fe134df524f991ce263df056578bc1931c0087b3fb961b176835b2e91c09d15adfb5af6049ec7a2bd1cbb
6
+ metadata.gz: 602d7d022693ec2fc2fc6407f18a98790c99d6eec5ab5b4a5e71e08091c5107e818b0bcccbfd6175ea9c244bc6ed11204e85a8be9fbe615ccb579c8bb3b61c6b
7
+ data.tar.gz: 9c1739bf3db4446ddd8febaa44cd74c48c2a8b11f1156cb9e9708693001819465fbf2436bc9fd606de303292bbe9e7239757273d81de32c821318bc9c6513981
@@ -0,0 +1,3 @@
1
+ .display-inline {
2
+ display: inline;
3
+ }
@@ -0,0 +1,23 @@
1
+ module Controller
2
+ module UsedSeatsConcern
3
+ def increment_used_seats
4
+ @resource = load_resource
5
+ @resource.used_seats += 1
6
+ if @resource.save
7
+ redirect_to collection_path, notice: I18n.t("controller.used_seats_concern.increment.succeeded")
8
+ else
9
+ redirect_to collection_path, alert: I18n.t("controller.used_seats_concern.increment.failed", errors: @resource.errors.full_messages.to_sentence)
10
+ end
11
+ end
12
+
13
+ def decrement_used_seats
14
+ @resource = load_resource
15
+ @resource.used_seats -= 1
16
+ if @resource.save
17
+ redirect_to collection_path, notice: I18n.t("controller.used_seats_concern.decrement.succeeded")
18
+ else
19
+ redirect_to collection_path, alert: I18n.t("controller.used_seats_concern.decrement.failed", errors: @resource.errors.full_messages.to_sentence)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -4,6 +4,7 @@ module Ecm
4
4
  class CoursesController < Itsf::Backend::Resource::BaseController
5
5
  include Controller::ActsAsListConcern
6
6
  include Controller::FriendlyIdConcern
7
+ include Controller::UsedSeatsConcern
7
8
 
8
9
  def self.resource_class
9
10
  Ecm::Courses::Course
@@ -12,7 +13,7 @@ module Ecm
12
13
  private
13
14
 
14
15
  def permitted_params
15
- params.require(:course).permit(:course_category_id, :locale, :name, :description)
16
+ params.require(:course).permit(:course_category_id, :locale, :name, :description, :seats, :used_seats)
16
17
  end
17
18
  end
18
19
  end
@@ -1,4 +1,6 @@
1
1
  = form.association :course_category
2
2
  = form.input :locale, collection: I18n.available_locales
3
3
  = form.input :name
4
- = form.input :description
4
+ = form.input :description
5
+ = form.input :seats
6
+ = form.input :used_seats
@@ -0,0 +1,12 @@
1
+ = table.row :course_category do |resource|
2
+ = link_to(resource.course_category.name, [resource.course_category])
3
+ = table.row :locale
4
+ = table.row :name
5
+ = table.row :description
6
+ = table.row :seats
7
+ = table.row :used_seats
8
+ = table.row :free_seats do |resource|
9
+ = resource.free_seats
10
+ %span{ class: "label label-#{resource.free_seats_level_properties[:css_class]}" }= number_to_percentage(resource.free_seats_percentage, precision: 1)
11
+ = table.row :created_at
12
+ = table.row :updated_at
@@ -1,6 +1,18 @@
1
- = table.column :course_category, as: :association, sortable: true
2
- = table.column :locale, sortable: true
1
+ = table.acts_as_list_actions scope: 'course_category_id'
2
+ = table.column :course_category, as: :association, sortable: true, url: ->(resource) { [resource.course_category] }
3
3
  = table.column :name, sortable: true
4
+ = table.column :locale, sortable: true
5
+ = table.column :seats
6
+ = table.column :free_seats do |resource|
7
+ .btn-group
8
+ %span{ class: "label label-#{resource.free_seats_level_properties[:css_class]}" }
9
+ = number_to_percentage(resource.free_seats_percentage, precision: 1)
10
+ = "(#{resource.free_seats})"
11
+ = table.column :used_seats do |resource|
12
+ .btn-group
13
+ = button_to('-', [:decrement_used_seats, resource], class: 'btn btn-default btn-xs btn-danger', form_class: 'display-inline')
14
+ %span= resource.used_seats
15
+ = button_to('+', [:increment_used_seats, resource], class: 'btn btn-default btn-xs btn-success', form_class: 'display-inline')
4
16
  = table.column :description, sortable: true, class: 'truncate-chars truncate-chars-30'
5
- = table.acts_as_list_actions scope: 'course_category_id'
6
- = table.timestamps
17
+ = table.column :created_at
18
+ = table.column :updated_at
@@ -2,4 +2,12 @@ de:
2
2
  classes:
3
3
  ecm/courses/backend/engine: 'Kurse'
4
4
  routes:
5
- ecm-courses-backend-engine: 'kurse'
5
+ ecm-courses-backend-engine: 'kurse'
6
+ controller:
7
+ used_seats_concern:
8
+ decrement:
9
+ succeeded: Anzahl belegter Plätze verringert.
10
+ failed: "Konnte die Anzahl belegter Plätze nicht verringern: %{errors}"
11
+ increment:
12
+ succeeded: Anzahl belegter Plätze erhöht.
13
+ failed: "Konnte die Anzahl belegter Plätze nicht erhöhen: %{errors}"
@@ -2,4 +2,12 @@ en:
2
2
  classes:
3
3
  ecm/courses/backend/engine: 'Courses'
4
4
  routes:
5
- ecm-courses-backend-engine: 'courses'
5
+ ecm-courses-backend-engine: 'courses'
6
+ controller:
7
+ used_seats_concern:
8
+ decrement:
9
+ succeeded: Decreased number of free seats.
10
+ failed: "Could not decrease number of free seats: %{errors}"
11
+ increment:
12
+ succeeded: Incecreased number of free seats.
13
+ failed: "Could not increase number of free seats: %{errors}"
data/config/routes.rb CHANGED
@@ -2,6 +2,8 @@ Ecm::Courses::Backend::Engine.routes.draw do
2
2
  backend_resources :course_categories
3
3
  backend_resources :courses do
4
4
  post :reposition, on: :member
5
+ post :decrement_used_seats, on: :member
6
+ post :increment_used_seats, on: :member
5
7
  end
6
8
  backend_resources :course_dates
7
9
 
@@ -1,7 +1,7 @@
1
1
  module Ecm
2
2
  module Courses
3
3
  module Backend
4
- VERSION = '0.1.3'.freeze
4
+ VERSION = '0.2.0'.freeze
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecm_courses2_backend
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-15 00:00:00.000000000 Z
11
+ date: 2018-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -52,8 +52,9 @@ files:
52
52
  - app/assets/javascripts/ecm/courses/backend/application/dummy.js
53
53
  - app/assets/javascripts/ecm_courses_backend.js
54
54
  - app/assets/stylesheets/ecm/courses/backend/application.css
55
- - app/assets/stylesheets/ecm/courses/backend/application/dummy.css
55
+ - app/assets/stylesheets/ecm/courses/backend/application/btn_label.css
56
56
  - app/assets/stylesheets/ecm_courses_backend.css
57
+ - app/concerns/controller/used_seats_concern.rb
57
58
  - app/controllers/ecm/courses/backend/course_categories_controller.rb
58
59
  - app/controllers/ecm/courses/backend/course_dates_controller.rb
59
60
  - app/controllers/ecm/courses/backend/courses_controller.rb
@@ -65,6 +66,7 @@ files:
65
66
  - app/views/ecm/courses/backend/course_dates/_form.haml
66
67
  - app/views/ecm/courses/backend/course_dates/_table.haml
67
68
  - app/views/ecm/courses/backend/courses/_form.haml
69
+ - app/views/ecm/courses/backend/courses/_show.haml
68
70
  - app/views/ecm/courses/backend/courses/_table.haml
69
71
  - app/views/layouts/ecm/courses/backend/application.html.erb
70
72
  - config/initializers/assets.rb