diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ed3049d2e..55a3735e9 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -331,7 +331,7 @@ class ApplicationController < ActionController::Base end # if !User.current.logged? && Rails.env.development? - # User.current = User.find 1 + User.current = User.find 4 # end diff --git a/app/controllers/competition_infos_controller.rb b/app/controllers/competition_infos_controller.rb index 955d39072..b936b77ca 100644 --- a/app/controllers/competition_infos_controller.rb +++ b/app/controllers/competition_infos_controller.rb @@ -1,5 +1,6 @@ class CompetitionInfosController < ApplicationController before_action :find_competition, only: [:show, :enroll, :upload, :enroll_status, :statistics] + # before_action :require_admin, only: [:index, :new, :edit, :create, :update] before_action :manager_competition, only: [:enroll_list] def index @@ -71,7 +72,9 @@ class CompetitionInfosController < ApplicationController competition_user = CompetitionUser.new(enroll_params) competition_user.competition_info = @competition_info competition_user.user = current_user + competition_user.members = params[:members] competition_user.save + render_ok end def enroll_status @@ -83,18 +86,16 @@ class CompetitionInfosController < ApplicationController tip_exception "未报名,请先报名" if competition_user.blank? tip_exception "未提交作品" if params[:attachment_ids].blank? tip_exception "您已经提交作品!" if competition_user.present? && competition_user.attachments.present? - if competition_user.present? && params[:attachment_ids].present? - params[:attachment_ids].each do |id| - attachment = Attachment.find_by_id(id) - unless attachment.blank? - attachment.container = competition_user - attachment.author_id = current_user.id - attachment.description = "" - attachment.save - end + params[:attachment_ids].each do |id| + attachment = Attachment.find_by_id(id) + unless attachment.blank? + attachment.container = competition_user + attachment.author_id = current_user.id + attachment.description = "" + attachment.save end - render_ok end + render_ok end #赛事风采 @@ -112,7 +113,8 @@ class CompetitionInfosController < ApplicationController end def competition_info_params - params.require(:competition_info).permit(:title, :zones, :sub_competitions, :identifier, :content, :video_url, :is_local) + params.require(:competition_info).permit(:title, :zones, :zones_local, :sub_competitions, :identifier, :content, + :video_url, :is_local, :upload_date, :enroll_date) end def find_competition diff --git a/app/models/competition_info.rb b/app/models/competition_info.rb index 05c0dc007..3959534ab 100644 --- a/app/models/competition_info.rb +++ b/app/models/competition_info.rb @@ -13,6 +13,9 @@ # is_local :boolean default(FALSE) # created_at :datetime not null # updated_at :datetime not null +# enroll_date :datetime +# upload_date :datetime +# zones_local :string(255) # # Indexes # @@ -23,7 +26,7 @@ class CompetitionInfo < ApplicationRecord has_many :competition_users def competition_zones - self.zones.to_s.split(",") + self.is_local? ? self.zones_local.to_s.split(",") : self.zones.to_s.split(",") end def competition_subs diff --git a/app/views/competition_infos/_form.html.erb b/app/views/competition_infos/_form.html.erb index 0eb8415a3..b501a171f 100644 --- a/app/views/competition_infos/_form.html.erb +++ b/app/views/competition_infos/_form.html.erb @@ -33,6 +33,11 @@ <%= form.check_box("is_local", {}, "true", "false") %> +
+ <%= form.label :zones, "赛区(内网)" %> + <%= form.text_field :zones_local, :style=>'width:1200px;' %> +
+
<%= form.label :zones, "赛区" %> @@ -44,6 +49,16 @@ <%= form.text_field :sub_competitions , :style=>'width:1200px;' %>
+
+ <%= form.label :enroll_date, "报名时间" %> + <%= form.text_field :enroll_date , :style=>'width:200px;' %> +
+ +
+ <%= form.label :upload_date, "提交作品时间" %> + <%= form.text_field :upload_date , :style=>'width:200px;' %> +
+
<%= form.submit("保存赛事")%> diff --git a/app/views/competition_infos/index.html.erb b/app/views/competition_infos/index.html.erb index 9b9cb1180..ae8538e09 100644 --- a/app/views/competition_infos/index.html.erb +++ b/app/views/competition_infos/index.html.erb @@ -24,7 +24,7 @@ <%= info.identifier %> <%= info.title %> <%= info.content %> - <%= info.zones %> + <%= info.is_local? ? info.zones_local : info.zones %> <%= info.sub_competitions %> <%= info.is_local? %> <%= link_to 'Edit', edit_competition_info_path(info) %> diff --git a/app/views/competition_infos/show.json.jbuilder b/app/views/competition_infos/show.json.jbuilder index 703cb5278..b71176523 100644 --- a/app/views/competition_infos/show.json.jbuilder +++ b/app/views/competition_infos/show.json.jbuilder @@ -2,6 +2,6 @@ json.status 0 json.message "success" json.data do json.extract! @competition_info, :id, :identifier, :title, :content, :video_url, :is_local - json.zones @competition_info.zones.to_s.split(",") + json.zones @competition_info.competition_zones json.sub_competitions @competition_info.sub_competitions.to_s.split(",") end \ No newline at end of file diff --git a/app/views/competition_infos/statistics.json.jbuilder b/app/views/competition_infos/statistics.json.jbuilder index 1c324ff03..8342ed3d1 100644 --- a/app/views/competition_infos/statistics.json.jbuilder +++ b/app/views/competition_infos/statistics.json.jbuilder @@ -2,6 +2,7 @@ json.status 0 json.message "success" json.enroll_count @competition_users.count json.upload_count @upload_count +json.competition_subs @competition_info.competition_subs json.data do json.array! @competition_info.competition_zones.each do |d| diff --git a/db/migrate/20220324061719_add_competition_info_date.rb b/db/migrate/20220324061719_add_competition_info_date.rb new file mode 100644 index 000000000..9c6d4cde6 --- /dev/null +++ b/db/migrate/20220324061719_add_competition_info_date.rb @@ -0,0 +1,7 @@ +class AddCompetitionInfoDate < ActiveRecord::Migration[5.2] + def change + add_column :competition_infos, :enroll_date, :datetime + add_column :competition_infos, :upload_date, :datetime + add_column :competition_infos, :zones_local, :string + end +end