diff options
| -rw-r--r-- | app/controllers/calendars_controller.rb | 32 | ||||
| -rw-r--r-- | app/controllers/concerns/workgroup_support.rb | 12 | ||||
| -rw-r--r-- | app/helpers/table_builder_helper/url.rb | 2 |
3 files changed, 45 insertions, 1 deletions
diff --git a/app/controllers/calendars_controller.rb b/app/controllers/calendars_controller.rb index 585851f00..17297c758 100644 --- a/app/controllers/calendars_controller.rb +++ b/app/controllers/calendars_controller.rb @@ -1,4 +1,5 @@ class CalendarsController < ChouetteController + include WorkgroupSupport include PolicyChecker include TimeTablesHelper @@ -54,10 +55,18 @@ class CalendarsController < ChouetteController private def decorate_calendars(calendars) +<<<<<<< HEAD CalendarDecorator.decorate( calendars, context: { workgroup: workgroup +======= + ModelDecorator.decorate( + calendars, + with: CalendarDecorator, + context: { + workgroup: current_workgroup +>>>>>>> update calendar build_links for table builder } ) end @@ -82,17 +91,30 @@ class CalendarsController < ChouetteController helper_method :workgroup def resource +<<<<<<< HEAD @calendar ||= workgroup.calendars.where('(organisation_id = ? OR shared = ?)', current_organisation.id, true).find_by_id(params[:id]) +======= +<<<<<<< HEAD + @calendar = Calendar.where('organisation_id = ? OR shared = true', current_organisation.id).find_by_id(params[:id]).decorate +======= + @calendar = Calendar.where('(organisation_id = ? OR shared = ?) AND workgroup_id = ?', current_organisation.id).find_by_id(params[:id], true, @workgroup.id) +>>>>>>> update calendar build_links for table builder +>>>>>>> update calendar build_links for table builder end def build_resource super.tap do |calendar| +<<<<<<< HEAD calendar.workgroup = workgroup +======= + calendar.workgroup = current_workgroup +>>>>>>> update calendar build_links for table builder calendar.organisation = current_organisation end end def collection +<<<<<<< HEAD @calendars ||= begin scope = workgroup.calendars.where('(organisation_id = ? OR shared = ?)', current_organisation.id, true) scope = shared_scope(scope) @@ -101,6 +123,16 @@ class CalendarsController < ChouetteController calendars = calendars.order(sort_column + ' ' + sort_direction) if sort_column && sort_direction calendars = calendars.paginate(page: params[:page]) end +======= + return @calendars if @calendars + scope = Calendar.where('(organisation_id = ? OR shared = ?) AND workgroup_id = ?', current_organisation.id, true, @workgroup.id) + scope = shared_scope(scope) + @q = scope.ransack(params[:q]) + + calendars = @q.result + calendars = calendars.order(sort_column + ' ' + sort_direction) if sort_column && sort_direction + @calendars = calendars.paginate(page: params[:page]) +>>>>>>> update calendar build_links for table builder end def ransack_contains_date diff --git a/app/controllers/concerns/workgroup_support.rb b/app/controllers/concerns/workgroup_support.rb new file mode 100644 index 000000000..a3b49bb12 --- /dev/null +++ b/app/controllers/concerns/workgroup_support.rb @@ -0,0 +1,12 @@ +module WorkgroupSupport + extend ActiveSupport::Concern + + included do + before_action :find_workgroup + end + + def find_workgroup + @workgroup ||= Workgroup.find params[:workgroup_id] + end + +end diff --git a/app/helpers/table_builder_helper/url.rb b/app/helpers/table_builder_helper/url.rb index 57172301c..0e3dce0aa 100644 --- a/app/helpers/table_builder_helper/url.rb +++ b/app/helpers/table_builder_helper/url.rb @@ -3,7 +3,7 @@ module TableBuilderHelper def self.polymorphic_url_parts(item, referential, workgroup) polymorph_url = [] - unless item.is_a?(Referential) || item.is_a?(ComplianceControlSet) + unless item.is_a?(Calendar) || item.is_a?(Referential) || item.is_a?(ComplianceControlSet) if referential polymorph_url << referential polymorph_url << item.line if item.respond_to? :line |
