diff --git a/app/controllers/page_collection_submissions_controller.rb b/app/controllers/page_collection_submissions_controller.rb index c251d79b..3cc7dff5 100644 --- a/app/controllers/page_collection_submissions_controller.rb +++ b/app/controllers/page_collection_submissions_controller.rb @@ -1,9 +1,10 @@ class PageCollectionSubmissionsController < ApplicationController + before_action :set_page_collection, only: [:index] before_action :set_page_collection_submission, only: [:show, :edit, :update, :destroy] # GET /page_collection_submissions def index - @page_collection_submissions = PageCollectionSubmission.all + @page_collection_submissions = @page_collection.page_collection_submissions end # GET /page_collection_submissions/1 @@ -24,9 +25,10 @@ class PageCollectionSubmissionsController < ApplicationController @page_collection_submission = PageCollectionSubmission.new(page_collection_submission_params) if @page_collection_submission.save - redirect_to @page_collection_submission, notice: 'Page collection submission was successfully created.' + redirect_to @page_collection_submission.page_collection, notice: 'Page submitted!' else - render :new + raise "railsed create" + # render :new end end @@ -35,7 +37,8 @@ class PageCollectionSubmissionsController < ApplicationController if @page_collection_submission.update(page_collection_submission_params) redirect_to @page_collection_submission, notice: 'Page collection submission was successfully updated.' else - render :edit + raise "failed edit" + # render :edit end end @@ -47,6 +50,10 @@ class PageCollectionSubmissionsController < ApplicationController private + def set_page_collection + @page_collection = PageCollection.find(params[:page_collection_id]) + end + # Use callbacks to share common setup or constraints between actions. def set_page_collection_submission @page_collection_submission = PageCollectionSubmission.find(params[:id]) @@ -58,7 +65,8 @@ class PageCollectionSubmissionsController < ApplicationController content_type: params.require(:page_collection_submission).require(:content).split('-').first, content_id: params.require(:page_collection_submission).require(:content).split('-').second, user_id: current_user.id, - submitted_at: DateTime.current + submitted_at: DateTime.current, + page_collection_id: params.require(:page_collection_submission).require(:page_collection_id) } end end diff --git a/app/models/page_collection.rb b/app/models/page_collection.rb index 5bee7b5a..cf543ade 100644 --- a/app/models/page_collection.rb +++ b/app/models/page_collection.rb @@ -1,6 +1,20 @@ class PageCollection < ApplicationRecord belongs_to :user + has_many :page_collection_submissions + + def pending_submissions + page_collection_submissions.where(accepted_at: nil) + end + + def accepted_submissions + page_collection_submissions.where.not(accepted_at: nil) + end + + def contributors + User.where(id: accepted_submissions.pluck(:user_id)) + end + serialize :page_types, Array def self.color diff --git a/app/models/page_collection_submission.rb b/app/models/page_collection_submission.rb index 041cc27c..432fea2e 100644 --- a/app/models/page_collection_submission.rb +++ b/app/models/page_collection_submission.rb @@ -1,4 +1,5 @@ class PageCollectionSubmission < ApplicationRecord belongs_to :content, polymorphic: true + belongs_to :page_collection belongs_to :user end diff --git a/app/models/page_groupers/character_magic.rb b/app/models/page_groupers/character_magic.rb index cfa5bc36..c3b71b69 100644 --- a/app/models/page_groupers/character_magic.rb +++ b/app/models/page_groupers/character_magic.rb @@ -1,5 +1,5 @@ class CharacterMagic < ApplicationRecord belongs_to :character - belongs_to :magic - belongs_to :user, optional: true, optional: true + belongs_to :magic, optional: true + belongs_to :user, optional: true end diff --git a/app/views/page_collection_submissions/index.html.erb b/app/views/page_collection_submissions/index.html.erb index 6f47318d..1aff4755 100644 --- a/app/views/page_collection_submissions/index.html.erb +++ b/app/views/page_collection_submissions/index.html.erb @@ -1,25 +1,57 @@ -
<%= notice %>
++ Submitters will be notified if you accept their content. +
+| - | ||
|---|---|---|
| <%= link_to 'Show', page_collection_submission %> | -<%= link_to 'Edit', edit_page_collection_submission_path(page_collection_submission) %> | -<%= link_to 'Destroy', page_collection_submission, method: :delete, data: { confirm: 'Are you sure?' } %> | -
+ <%= link_to "Back to #{@page_collection.title}", @page_collection, class: "#{PageCollection.color}-text" %> +
+