修改了原有参赛作品显示报500;

修改了作品删除功能报错
This commit is contained in:
wanglinchun 2014-05-26 19:19:11 +08:00
parent 8d77c62359
commit a1083fe900
8 changed files with 313 additions and 291 deletions

View File

@ -47,7 +47,7 @@ class SoftapplicationsController < ApplicationController
def show def show
@softapplication = Softapplication.find(params[:id]) @softapplication = Softapplication.find(params[:id])
@project = Project.find_by_identifier(@softapplication.deposit_project) @project = @softapplication.project
# 打分统计 # 打分统计
stars_reates = @softapplication. stars_reates = @softapplication.
rates(:quality) rates(:quality)
@ -142,7 +142,8 @@ class SoftapplicationsController < ApplicationController
def create def create
@softapplication = Softapplication.new(params[:softapplication]) @softapplication = Softapplication.new(params[:softapplication])
@softapplication.user = User.current @softapplication.user = User.current
@softapplication.deposit_project = params[:project] #@softapplication.deposit_project = params[:project]
@softapplication.project = Project.find_by_id(params[:project])
@softapplication.save_attachments(params[:attachments]) @softapplication.save_attachments(params[:attachments])

View File

@ -745,7 +745,7 @@ module ApplicationHelper
tmp = Hash.new tmp = Hash.new
tmp={"" => ""} tmp={"" => ""}
option.each do |project| option.each do |project|
tmp[project.name] = project.identifier tmp[project.name] = project.id
end end
tmp tmp
end end

View File

@ -6,10 +6,11 @@ class Softapplication < ActiveRecord::Base
has_many :journals_for_messages, :as => :jour, :dependent => :destroy has_many :journals_for_messages, :as => :jour, :dependent => :destroy
has_many :contesting_softapplications, :dependent => :destroy has_many :contesting_softapplications, :dependent => :destroy
has_many :projecting_softapplications, :dependent => :destroy #has_many :projecting_softapplications, :dependent => :destroy
belongs_to :user belongs_to :user
belongs_to :project belongs_to :project
has_many :contests, :through => :contesting_softapplications has_many :contests, :through => :contesting_softapplications
belongs_to :project
def add_jour(user, notes, reference_user_id = 0, options = {}) def add_jour(user, notes, reference_user_id = 0, options = {})
if options.count == 0 if options.count == 0

View File

@ -15,6 +15,7 @@
margin-top: -10px; margin-top: -10px;
/*margin-right: -4px;*/ /*margin-right: -4px;*/
} }
input[type="button"].contest_btn { input[type="button"].contest_btn {
width: 60px; width: 60px;
height: 30px; height: 30px;
@ -30,6 +31,7 @@
margin-top: -10px; margin-top: -10px;
margin-right: -2px; margin-right: -2px;
} }
textarea:focus { textarea:focus {
border: #d5dee9 1px solid; border: #d5dee9 1px solid;
} }
@ -73,13 +75,6 @@
<span><strong><%= l(:label_attending_contest) %></strong></span> <span><strong><%= l(:label_attending_contest) %></strong></span>
<span><%= link_to l(:label_new_attendingcontest_work), "javascript:void(0);", onclick: "$('#put-project-form').toggle();" %></span> <span><%= link_to l(:label_new_attendingcontest_work), "javascript:void(0);", onclick: "$('#put-project-form').toggle();" %></span>
</div> </div>
<!-- <div style="padding-left: 82px; ">
<span style="padding-top: 50px">步骤1</span>
<span><%#= link_to '新建参赛作品', new_softapplication_path(:target=>'_blank'), :target=>'_blank' %></span>
<span><%= link_to '新建参赛作品', "javascript:void(0);", onclick: "$('#put-project-form').toggle();" %></span>
<span style="font-size: 12px; color: grey">先点击“新建参赛作品”然后刷新页面再继续步骤2。</span>
</div> -->
</div> </div>
<% else %> <% else %>
<div style="font-size: 14px;margin:10px;padding-left: 73px"> <div style="font-size: 14px;margin:10px;padding-left: 73px">
@ -91,46 +86,56 @@
<!--点击新建参赛作品弹出框新建参赛作品并关联到竞赛中--> <!--点击新建参赛作品弹出框新建参赛作品并关联到竞赛中-->
<div id="put-project-form" style="display: none; padding-left: 83px; width: 88%"> <div id="put-project-form" style="display: none; padding-left: 83px; width: 88%">
<%= form_for Softapplication.new, :url => softapplications_path do |f| %> <%= form_for Softapplication.new, :url => softapplications_path do |f| %>
<fieldset class="contes-new-box", style="padding-left: 36px; line-height: 8px; margin-left: 1px"> <fieldset class="contes-new-box" style="padding-left: 36px; line-height: 8px; margin-left: 1px" >
<%= hidden_field_tag 'contest_id', @contest.id %> <%= hidden_field_tag 'contest_id', @contest.id %>
<tr style="width:700px; margin-left: -10px;"> <tr style="width:700px; margin-left: -10px;">
<span><%= l(:label_work_name) %></span> <span><%= l(:label_work_name) %></span>
<span class="contest-star"> * </span>: <td ><%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %></td> <span class="contest-star"> * </span>:
<td><%= f.text_field :name, :required => true, :size => 60, :style => "width:400px;" %></td>
<span style="font-size: 10px">(<%= l(:label_workname_lengthlimit) %>)</span> <span style="font-size: 10px">(<%= l(:label_workname_lengthlimit) %>)</span>
</tr><br/> </tr>
<br/>
<br/> <br/>
<br/> <br/>
<tr style="width:800px;"> <tr style="width:800px;">
<span><%= l(:label_running_platform) %></span> <span><%= l(:label_running_platform) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :android_min_version_available, :required => true, :size => 60, :style => "width:400px;" %></td> <span class="contest-star"> * </span>:
<td style="width: 100px"><%= f.text_field :android_min_version_available, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr><br/> </tr>
<br/>
<br/> <br/>
<br/> <br/>
<tr style="width:800px;"> <tr style="width:800px;">
<span><%= l(:label_work_type) %></span> <span><%= l(:label_work_type) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %></td> <span class="contest-star"> * </span>:
<td style="width: 100px"><%= f.text_field :app_type_name, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr><br/> </tr>
<br/>
<br/> <br/>
<br/> <br/>
<tr style="width:800px;"> <tr style="width:800px;">
<span><%= l(:label_work_description) %></span> <span><%= l(:label_work_description) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :description, :required => true, :size => 60, :style => "width:400px;" %></td> <span class="contest-star"> * </span>:
<td style="width: 100px"><%= f.text_field :description, :required => true, :size => 60, :style => "width:400px;" %></td>
<span style="font-size: 10px">(<%= l(:label_workdescription_lengthlimit) %>)</span> <span style="font-size: 10px">(<%= l(:label_workdescription_lengthlimit) %>)</span>
</tr><br/> </tr>
<br/>
<br/> <br/>
<br/> <br/>
<tr style="width:800px;"> <tr style="width:800px;">
<span><%= l(:label_softapplication_developers) %></span> <span><%= l(:label_softapplication_developers) %></span>
<span class="contest-star"> * </span>: <td style="width: 100px"><%= f.text_field :application_developers, :required => true, :size => 60, :style => "width:400px;" %></td> <span class="contest-star"> * </span>:
<td style="width: 100px"><%= f.text_field :application_developers, :required => true, :size => 60, :style => "width:400px;" %></td>
</tr><br/> </tr>
<br/>
<br/> <br/>
<br/> <br/>
@ -138,7 +143,8 @@
<span><%= l(:label_work_deposit_project) %></span> <span><%= l(:label_work_deposit_project) %></span>
<span style="padding-left: 4px"><%= select_tag 'project', options_for_select(select_option_helper(@option)), :name => 'project', :class => 'grayline2' %></span> <span style="padding-left: 4px"><%= select_tag 'project', options_for_select(select_option_helper(@option)), :name => 'project', :class => 'grayline2' %></span>
<span><%= link_to l(:label_create_new_projects), new_project_path(course: 0, project_type: 0), :target => '_blank' %></span> <span><%= link_to l(:label_create_new_projects), new_project_path(course: 0, project_type: 0), :target => '_blank' %></span>
</tr><br/> </tr>
<br/>
<br/> <br/>
<br/> <br/>
@ -150,6 +156,7 @@
<p id="put-bid-form-partial"> <p id="put-bid-form-partial">
<%= render :partial => 'attachments/form' %> <%= render :partial => 'attachments/form' %>
</p> </p>
<p style="font-size: 11px"> <p style="font-size: 11px">
1、<%= l(:label_upload_softapplication_packets_mustpacketed) %> <br/> 1、<%= l(:label_upload_softapplication_packets_mustpacketed) %> <br/>
<br> <br>
@ -181,7 +188,9 @@
<div style="padding-left: 18px"> <div style="padding-left: 18px">
<div style="font-size: 15px"> <div style="font-size: 15px">
<div> <div>
<div><strong><%= l(:label_contest_work)%>: <%= link_to(c_project.project.name, project_path(c_project.project), :target => '_blank') %> </strong> <div><strong><%= l(:label_contest_work) %>
: <%= link_to(c_project.project.name, project_path(c_project.project), :target => '_blank') %> </strong>
<div style="float: right"> <div style="float: right">
<td style="color: #ec6300;" align="right" valign="0.1em" width="16%"> <td style="color: #ec6300;" align="right" valign="0.1em" width="16%">
<strong> <strong>
@ -236,17 +245,21 @@
<% end %> <% end %>
</div> </div>
</div> </div>
</div></br> </div>
</br>
</div> </div>
<div style="padding-left: 68px"> <div style="padding-left: 68px">
<tr> <tr>
<td><%= l(:label_profile) %>:</td> <td><%= l(:label_profile) %>:</td>
<td> <%= c_project.project.description.truncate(90, omission: '...') %> </td> <td> <%= c_project.project.description.truncate(90, omission: '...') %> </td>
</tr></br> </tr>
</br>
</div> </div>
<div style="padding-left: 68px; padding-bottom: 8px"> <div style="padding-left: 68px; padding-bottom: 8px">
<span><strong><%= l(:label_attendingcontest_time)%></strong><%= format_time c_project.created_at%></span> <span><strong><%= l(:label_attendingcontest_time) %>
<span style="padding-left: 240px"><strong><%= l(:label_attendingcontest_spoksman)%></strong><%= c_project.user.name %></span> </strong><%= format_time c_project.created_at %></span>
<span style="padding-left: 240px"><strong><%= l(:label_attendingcontest_spoksman) %>
</strong><%= c_project.user.name %></span>
</div> </div>
<div style="padding-left: 68px"> <div style="padding-left: 68px">
@ -264,24 +277,30 @@
<tr> <tr>
<td><strong><%= l(:label_contest_work) %>: </strong></td> <td><strong><%= l(:label_contest_work) %>: </strong></td>
<td> <%= link_to(c_softapplication.softapplication.name, softapplication_path(c_softapplication.softapplication), :target => '_blank') %> </td> <td> <%= link_to(c_softapplication.softapplication.name, softapplication_path(c_softapplication.softapplication), :target => '_blank') %> </td>
</tr></br> </tr>
</br>
</div> </div>
<div style="padding-left: 68px; padding-top: 5px"> <div style="padding-left: 68px; padding-top: 5px">
<tr> <tr>
<td><strong><%= l(:label_profile) %>:</strong></td> <td><strong><%= l(:label_profile) %>:</strong></td>
<td> <%= c_softapplication.softapplication.description.truncate(90, omission: '...') %> </td> <td> <%= c_softapplication.softapplication.description.truncate(90, omission: '...') %> </td>
</tr></br> </tr>
</br>
</div> </div>
<div style="padding-left: 68px; pading-bottom: 8px"> <div style="padding-left: 68px; pading-bottom: 8px">
<span><strong><%= l(:label_attendingcontest_time)%></strong><%= format_time c_softapplication.created_at %></span> <span><strong><%= l(:label_attendingcontest_time) %>
<span style="padding-left: 240px"><strong><%= l(:label_attendingcontest_spoksman)%></strong><%= c_softapplication.softapplication.user.name %></span> </strong><%= format_time c_softapplication.created_at %></span>
<span style="padding-left: 240px"><strong><%= l(:label_attendingcontest_spoksman) %>
</strong><%= c_softapplication.softapplication.user.name %></span>
</div> </div>
<!--获奖及教师评奖--> <!--获奖及教师评奖-->
<div style="padding-left: 18px; padding-bottom: 5px"> <div style="padding-left: 18px; padding-bottom: 5px">
<span style="padding-left: 50px"><strong><%= l(:label_final_scores)%></strong></span><span style="color: red"><%= c_softapplication.softapplication.average(:quality).try(:avg).try(:round, 2).to_i.to_s%>分</span> <span style="padding-left: 50px"><strong><%= l(:label_final_scores) %>
</strong></span><span style="color: red"><%= c_softapplication.softapplication.average(:quality).try(:avg).try(:round, 2).to_i.to_s %>
分</span>
<span style="padding-left: 334px"> <span style="padding-left: 334px">
<td> <td>
<strong> <strong>

View File

@ -16,13 +16,13 @@
<div style="float: left; width: 600px; padding-top: 6px; margin-left: 8px"><%= softapplication.description.truncate(95, omission: '...') %></div> <div style="float: left; width: 600px; padding-top: 6px; margin-left: 8px"><%= softapplication.description.truncate(95, omission: '...') %></div>
<div style="float: left; width: 200px; margin-left: 70px; margin-top: -3px; line-height: 0.5em "> <div style="float: left; width: 200px; margin-left: 70px; margin-top: -3px; line-height: 0.5em ">
<%contest = softapplication.contests.first%> <%contest = softapplication.contests.first%>
<p>所属竞赛<%= contest ? link_to(contest.name.truncate(14, omission: '...'), show_attendingcontest_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%></p> <p><%=l(:label_attendingcontestwork_belongs_contest)%><%= contest ? link_to(contest.name.truncate(14, omission: '...'), show_attendingcontest_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%></p>
<p>所属类别<%= softapplication.app_type_name.truncate(10, omission: '...') %></p> <p><%=l(:label_attendingcontestwork_belongs_type)%><%= softapplication.app_type_name.truncate(10, omission: '...') %></p>
<p>系统支持<%= softapplication.android_min_version_available %></p> <p><%=l(:label_attendingcontestwork_adaptive_system)%><%= softapplication.android_min_version_available %></p>
</div> </div>
<div style="padding-left: 53px"> <div style="padding-left: 53px">
<span>开发人员<%= softapplication.application_developers %></span> <span><%=l(:label_attendingcontestwork_developers)%><%= softapplication.application_developers %></span>
<span style="padding-left: 50px">发布时间<%=format_time softapplication.created_at %></span> <span style="padding-left: 50px"><%=l(:label_attendingcontestwork_release_time)%><%=format_time softapplication.created_at %></span>
</div> </div>
<div style="border-left: 1px solid #d9d8d8; border-bottom: 1px solid #d9d8d8; margin-left: 50px; padding-bottom: 10px; margin-bottom: 20px; width: 66%"></div> <div style="border-left: 1px solid #d9d8d8; border-bottom: 1px solid #d9d8d8; margin-left: 50px; padding-bottom: 10px; margin-bottom: 20px; width: 66%"></div>
<div class="underline-contests_one" style="margin-top: -7px"></div> <div class="underline-contests_one" style="margin-top: -7px"></div>

View File

@ -16,38 +16,35 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="width: 570px; padding-left:40px; word-wrap: break-word; word-break: break-all">所属类别<%= @softapplication.app_type_name %></td> <td style="width: 570px; padding-left:40px; word-wrap: break-word; word-break: break-all"><%=l(:label_attendingcontestwork_belongs_type)%><%= @softapplication.app_type_name %></td>
<% contest = @softapplication.contests.first %> <% contest = @softapplication.contests.first %>
<td style="width: 240px; word-wrap: break-word; word-break: break-all">所属竞赛<%= contest ? link_to(contest.name, show_attendingcontest_contest_path(contest)) : '尚未加入竞赛' %></td> <td style="width: 240px; word-wrap: break-word; word-break: break-all"><%=l(:label_attendingcontestwork_belongs_contest)%><%= contest ? link_to(contest.name, show_attendingcontest_contest_path(contest)) : '尚未加入竞赛' %></td>
</tr> </tr>
<tr> <tr>
<td style="padding-left: 40px">发布人员<%= @softapplication.user.name %></td> <td style="padding-left: 40px"><%=l(:label_attendingcontestwork_release_person)%><%= @softapplication.user.name %></td>
<td>系统支持<%= @softapplication.android_min_version_available %></td> <td><%=l(:label_attendingcontestwork_adaptive_system)%><%= @softapplication.android_min_version_available %></td>
</tr> </tr>
<tr> <tr>
<td style="padding-left: 40px"> <td style="padding-left: 40px">
<span>作品下载</span> <span><%=l(:label_attendingcontestwork_download)%></span>
<span> <span>
<% options = {:author => true, :deletable => @softapplication.user.eql?(User.current)} %><%= render :partial => 'attachments/app_link', :locals => {:attachments => @app_items, :options => options} %> <% options = {:author => true, :deletable => @softapplication.user.eql?(User.current)} %><%= render :partial => 'attachments/app_link', :locals => {:attachments => @app_items, :options => options} %>
</span> </span>
</td> </td>
<td>开发人员<%= @softapplication.application_developers %></td> <td><%=l(:label_attendingcontestwork_developers)%><%= @softapplication.application_developers %></td>
</tr> </tr>
<tr> <tr>
<td style="padding-left: 40px">平均评分: <%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></td> <td style="padding-left: 40px"><%=l(:label_attendingcontestwork_average_scores)%>: <%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></td>
<td>发布时间<%=format_time @softapplication.created_at %></td> <td><%=l(:label_attendingcontestwork_release_time)%><%=format_time @softapplication.created_at %></td>
</tr> </tr>
<tr> <tr>
<td style="padding-left: 40px"> <td style="padding-left: 40px">
<% if (@softapplication.deposit_project != "nil" && @softapplication.deposit_project != "") %> <% if @project %>
<%#= textilizable ("托管项目: " + @project.name) %> 托管项目:<%= link_to "#@project", project_path(@project) %>
托管项目:<%= link_to "#@project", project_path(@project.id) %>
<% end %> <% end %>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
@ -56,7 +53,7 @@
<div style="height: auto; padding-bottom: 10px"> <div style="height: auto; padding-bottom: 10px">
<strong> <strong>
<div style="font-size: 15px;">作品简介</div> <div style="font-size: 15px;"><%=l(:label_work_description)%></div>
</strong> </strong>
<div style="padding-top: 5px"><%= @softapplication.description %></div> <div style="padding-top: 5px"><%= @softapplication.description %></div>
@ -64,11 +61,11 @@
<div class="underline-contests_one"></div> <div class="underline-contests_one"></div>
<div style="height: auto; padding-bottom: 10px"> <div style="height: auto; padding-bottom: 10px">
<div style="font-size: 15px;"><strong>作品得分</strong></div> <div style="font-size: 15px;"><strong><%=l(:label_work_scores)%></strong></div>
<!-- <div>打分总人数:<%= @softapplication.raters(:quality).count %></div> --> <!-- <div>打分总人数:<%= @softapplication.raters(:quality).count %></div> -->
<div style="overflow: hidden"> <div style="overflow: hidden">
<div style="margin-left: 15%; float: left"> <div style="margin-left: 15%; float: left">
<div style="padding-left: 45px; padding-bottom: 5px">得分比例</div> <div style="padding-left: 45px; padding-bottom: 5px"><%=l(:label_work_scores_proportion)%></div>
<div> <div>
<% 100.step(20, -20) do |star| %> <% 100.step(20, -20) do |star| %>
<div data-kls="Softapplication" data-id="2" data-dimension="quality" data-average="3.25" class="rateable div_inline jDisabled" style="height: 20px; width: 115px; overflow: hidden; z-index: 1; position: relative;"> <div data-kls="Softapplication" data-id="2" data-dimension="quality" data-average="3.25" class="rateable div_inline jDisabled" style="height: 20px; width: 115px; overflow: hidden; z-index: 1; position: relative;">
@ -83,14 +80,12 @@
</div> </div>
</div> </div>
<div style="float: left; padding-left: 100px; padding-top:35px " align="center"> <div style="float: left; padding-left: 100px; padding-top:35px " align="center">
<div>最终得分</div> <div><%=l(:label_final_scores)%></div>
<div style="padding-top: 1px; font-size: 15px; color: blue"><%= @softapplication.average(:quality).try(:avg).try(:round, 2).to_i.to_s %> <div style="padding-top: 1px; font-size: 15px; color: blue"><%= @softapplication.average(:quality).try(:avg).try(:round, 2).to_i.to_s %>分</div>
</div>
<div><%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></div> <div><%= rating_for @softapplication, :static => true, dimension: :quality, class: 'rateable div_inline' %></div>
</div> </div>
<div style="float: left; padding-left: 100px; padding-top:35px;" align="center"> <div style="float: left; padding-left: 100px; padding-top:35px;" align="center">
<div>打分总人数</div> <div><%=l(:label_rating_person_amount)%></div>
<div style="padding-top: 1px; font-size: 25px; color: blue;"> <div style="padding-top: 1px; font-size: 25px; color: blue;">
<strong><%= @softapplication.raters(:quality).count %></strong></div> <strong><%= @softapplication.raters(:quality).count %></strong></div>
</div> </div>
@ -100,7 +95,7 @@
<div style="height: auto; padding-bottom: 10px"> <div style="height: auto; padding-bottom: 10px">
<strong> <strong>
<div style="font-size: 15px">作品截图</div> <div style="font-size: 15px"><%=l(:label_work_photo)%></div>
</strong> </strong>
<div class="softapplication-img" > <div class="softapplication-img" >
@ -119,9 +114,9 @@
<div class="underline-contests_one"></div> <div class="underline-contests_one"></div>
<div style="height: 50px"> <div style="height: 50px">
<div style="font-size: 15px"><strong>作品评论</strong></div> <div style="font-size: 15px"><strong><%=l(:label_work_comment)%></strong></div>
<% if (User.current.logged? and User.current.id != @softapplication.user_id) %> <% if (User.current.logged? and User.current.id != @softapplication.user_id) %>
<div style="padding-left: 210px">评分: <%= rating_for @softapplication, dimension: :quality, class: 'rateable div_inline' %> <div style="padding-left: 210px"><%=l(:label_work_rating)%>: <%= rating_for @softapplication, dimension: :quality, class: 'rateable div_inline' %>
<span style="font-size: 11px">(您可以重新打分,打分结果以最后一次打分为主!)</span></div> <span style="font-size: 11px">(您可以重新打分,打分结果以最后一次打分为主!)</span></div>
<% end %> <% end %>

View File

@ -0,0 +1,5 @@
class AddProjectToSoftapplication < ActiveRecord::Migration
def change
add_column :softapplications, :project_id, :integer
end
end

View File

@ -11,7 +11,7 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20140526031949) do ActiveRecord::Schema.define(:version => 20140526104509) do
create_table "activities", :force => true do |t| create_table "activities", :force => true do |t|
t.integer "act_id", :null => false t.integer "act_id", :null => false
@ -803,6 +803,7 @@ ActiveRecord::Schema.define(:version => 20140526031949) do
t.string "application_developers" t.string "application_developers"
t.string "deposit_project_url" t.string "deposit_project_url"
t.string "deposit_project" t.string "deposit_project"
t.integer "project_id"
end end
create_table "students_for_courses", :force => true do |t| create_table "students_for_courses", :force => true do |t|