This commit is contained in:
whimlex 2015-01-21 18:13:47 +08:00
commit 0c0160ac2b
32 changed files with 324 additions and 75 deletions

2
.rspec Normal file
View File

@ -0,0 +1,2 @@
--format documentation
--color

View File

@ -18,6 +18,7 @@ gem "builder", "3.0.0"
gem 'acts-as-taggable-on', '2.4.1'
gem 'spreadsheet'
gem 'ruby-ole'
gem 'email_verifier'
group :development do
gem 'better_errors', path: 'lib/better_errors'
@ -51,7 +52,8 @@ group :development, :test do
gem 'ruby-prof', '~> 0.15.1' unless RUBY_PLATFORM =~ /w32/
gem 'pry'
gem 'pry-nav'
gem 'rspec-rails' , '2.13.1'
gem 'guard-rspec','2.5.0'
end

View File

@ -345,7 +345,10 @@ class AccountController < ApplicationController
if user.save and token.save
UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
Mailer.register(token).deliver
flash[:notice] = l(:notice_account_register_done)
render action: 'email_valid', locals: {:mail => user.mail}
else
yield if block_given?

View File

@ -1,8 +1,8 @@
class PollController < ApplicationController
before_filter :find_poll_and_course, :only => [:edit,:update,:destroy,:show,:statistics_result,:create_poll_question,:commit_poll,:commit_answer,:publish_poll]
before_filter :find_poll_and_course, :only => [:edit,:update,:destroy,:show,:statistics_result,:create_poll_question,:commit_poll,:commit_answer,:publish_poll,:republish_poll]
before_filter :find_container, :only => [:new,:create, :index]
before_filter :is_member_of_course, :only => [:index,:show]
before_filter :is_course_teacher, :only => [:new,:create,:edit,:update,:destroy,:publish_poll]
before_filter :is_course_teacher, :only => [:new,:create,:edit,:update,:destroy,:publish_poll,:republish_poll]
include PollHelper
def index
if @course
@ -40,7 +40,7 @@ class PollController < ApplicationController
def new
if @course
option = {
:polls_name => l(:label_poll_new),
:polls_name => "",
:polls_type => @course.class.to_s,
:polls_group_id => @course.id,
:polls_status => 1,
@ -187,7 +187,13 @@ class PollController < ApplicationController
@poll.polls_status = 2
@poll.published_at = Time.now
if @poll.save
redirect_to poll_index_url(:polls_type => "Course", :polls_group_id => @course.id)
if params[:is_remote]
redirect_to poll_index_url(:polls_type => "Course", :polls_group_id => @course.id)
else
respond_to do |format|
format.js
end
end
end
end
@ -311,6 +317,19 @@ class PollController < ApplicationController
end
end
#重新发布问卷
def republish_poll
@poll.poll_questions.each do |poll_question|
poll_question.poll_votes.destroy_all
end
@poll.poll_users.destroy_all
@poll.polls_status = 1
@poll.save
respond_to do |format|
format.js
end
end
private
def find_poll_and_course
@poll = Poll.find params[:id]
@ -337,7 +356,8 @@ class PollController < ApplicationController
end
def is_course_teacher
render_403 unless(@course && User.current.allowed_to?(:as_teacher,@course))
@is_teacher = User.current.allowed_to?(:as_teacher,@course)
render_403 unless(@course && @is_teacher)
end
#获取未完成的题目

View File

@ -558,6 +558,11 @@ class ProjectsController < ApplicationController
# Show @project
def show
if(@project && !@project.is_public && !User.current.member_of?(@project))
render_403
return
end
@project_type = params[:project_type]
# try to redirect to the requested menu item

View File

@ -111,6 +111,10 @@ module CoursesHelper
#garble count
# end
#获取课程所有成员
def course_member course
course.members
end
# 学生人数计算
# add by nwb
def studentCount course

View File

@ -1,7 +1,9 @@
# Added by young
class JournalsForMessageObserver < ActiveRecord::Observer
def after_create(journals_for_message)
thread1 = Thread.start do
Mailer.journals_for_message_add(User.current, journals_for_message).deliver
end
end
end

View File

@ -62,13 +62,13 @@ class Mailer < ActionMailer::Base
course = journals_for_message.jour
@author = journals_for_message.user
#课程的教师
@teachers = searchTeacherAndAssistant journals_for_message.jour
@members = course_member journals_for_message.jour
#收件人邮箱
@recipients ||= []
@teachers.each do |teacher|
if teacher.user.notify_about? journals_for_message
@members.each do |teacher|
@recipients << teacher.user.mail
end
end
mail :to => @recipients,

View File

@ -188,7 +188,7 @@ class User < Principal
validates_confirmation_of :password, :allow_nil => true
validates_inclusion_of :mail_notification, :in => MAIL_NOTIFICATION_OPTIONS.collect(&:first), :allow_blank => true
validate :validate_password_length
validates_email_realness_of :mail
before_create :set_mail_notification
before_save :update_hashed_password
before_destroy :remove_references_before_destroy

View File

@ -56,7 +56,7 @@
</script>
<%= stylesheet_link_tag 'course_group', :media => 'all' %>
<script type="text/javascript" src="javascripts/jquery-1.8.3-ui-1.9.2-ujs-2.0.3.js"></script>
<div class="st_list">
<div class="st_list" id="member_of_course">
<div class="st_search" style="margin-left: 14px" >
<span class="f_l"><%= @subPage_title %></span>
<span id = "search_members">

View File

@ -18,7 +18,7 @@
<div class="ur_editor checkbox">
<div class="ur_editor_title">
<input type="hidden" name="question_type" value="<%= poll_question.question_type%>"/>
<input maxlength="250" class="ur_question_title" type="text" name="poll_questions_title" id="poll_questions_title_<%=poll_question.id%>" placeholder="请输入选题标题" value="<%= poll_question.question_title%>"/>
<input maxlength="250" class="ur_question_title" type="text" name="poll_questions_title" id="poll_questions_title_<%=poll_question.id%>" placeholder="请输入选题标题" value="<%= poll_question.question_title%>"/>
<input type="checkbox" name="is_necessary" id="is_necessary_<%=poll_question.id%>" value="true" <%= poll_question.is_necessary == 1 ? "checked" : ""%>/>
<label>必答</label>
</div>

View File

@ -3,7 +3,7 @@
<div class="ur_editor_title">
<label>问题:&nbsp;&nbsp;</label>
<input type="hidden" name="question_type" value="2"/>
<input maxlength="250" class="ur_question_title" type="text" name="poll_questions_title" id="poll_questions_title" placeholder="请输入多选题标题"/>
<input maxlength="250" class="ur_question_title" type="text" name="poll_questions_title" id="poll_questions_title" placeholder="请输入多选题标题"/>
<input type="checkbox" name="is_necessary" value="true" checked/>
<label>必答</label>
</div>

View File

@ -0,0 +1,69 @@
<% has_commit = has_commit_poll?(poll.id ,User.current)%>
<li title="<%= poll.polls_name %>">
<% if @is_teacher %>
<% if has_commit %>
<sapn class="polls_title fl">
<%= poll.polls_name.empty? ? l(:label_poll_new) : poll.polls_name%>
</sapn>
<% else %>
<%= link_to (poll.polls_name.empty? ? l(:label_poll_new) : poll.polls_name), poll_path(poll.id), :class => "polls_title polls_title_w fl" %>
<% end %>
<% else %>
<% if has_commit && poll.polls_status == 2 %>
<sapn class="polls_title fl" style="max-width: 500px;">
<%= poll.polls_name.empty? ? l(:label_poll_new) : poll.polls_name %>
</sapn>
<% elsif !has_commit && poll.polls_status == 2 %>
<%= link_to (poll.polls_name.empty? ? l(:label_poll_new) : poll.polls_name), poll_path(poll.id), :class => "polls_title polls_title_w fl", :style => "max-width: 550px;width: 550px;" %>
<% end %>
<% end %>
</li>
<% if !@is_teacher && has_commit && poll.polls_status == 2%>
<li class="pollsbtn_tip fl ml5">已答</li>
<% end %>
<%if @is_teacher%>
<% if poll.polls_status == 1 %>
<li class="pollsbtn fl ml10 pollsbtn_grey">统计结果</li>
<% elsif poll.polls_status == 2%>
<li>
<%= link_to l(:label_statistical_results), statistics_result_poll_path(poll.id), :class => "pollsbtn fl ml10"%>
</li>
<% end%>
<% end%>
<li>
<%if @is_teacher %>
<% if poll.polls_status == 1 %>
<a href="#" class="pollsbtn btn_pu fl ml5" onclick="poll_submit(<%= poll.id%>);">发布问卷</a>
<% elsif poll.polls_status == 2%>
<a href="#" class="pollsbtn btn_de fl ml5" onclick="republish_poll(<%= poll.id%>);">取消发布</a>
<% end%>
<% end%>
</li>
<li>
<% if @is_teacher %>
<!--新建状态的问卷可删除-->
<%= link_to(l(:button_delete), poll,
method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "polls_de fr ml20 mr10") %>
<% end%>
</li>
<li>
<% if @is_teacher%>
<% if poll.polls_status == 1 %>
<%= link_to l(:button_edit), edit_poll_path(poll.id), :class => "polls_de fr ml20"%>
<% elsif poll.polls_status == 2%>
<li class="polls_de_grey fr ml20">编辑</li>
<% end%>
<% end%>
</li>
<!--<li>-->
<!--<% if @is_teacher && poll.polls_status == 2%>-->
<!--<a class="polls_de fr ml20" onclick="republish_poll(<%= poll.id%>);">-->
<!--取消发布-->
<!--</a>-->
<!--<% end %>-->
<!--</li>-->
<li class="polls_date fr mr10">
<%= format_time poll.created_at%>
</li>

View File

@ -57,7 +57,7 @@
function poll_submit()
{
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'poll_submit', locals: { poll: @poll}) %>');
$('#ajax-modal').html('<%= escape_javascript(render :partial => 'poll_submit', locals: { :poll => @poll,:is_remote => false}) %>');
showModal('ajax-modal', '310px');
$('#ajax-modal').css('height','110px');
$('#ajax-modal').siblings().remove();

View File

@ -0,0 +1,32 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function clickCanel(){hideModal("#popbox02");}
</script>
</head>
<body>
<div id="popbox02">
<div class="upload_con">
<div class="upload_box">
<p class="polls_box_p">
问卷取消发布后学生提交的问卷答案将会被清空,
<br />
是否确定取消发布该问卷?
</p>
<div class="polls_btn_box">
<%= link_to "确 定",republish_poll_poll_path(poll.id), :class => "upload_btn", :onclick => "clickCanel();" %>
<a class="upload_btn upload_btn_grey" onclick="clickCanel();">
取&nbsp;&nbsp;消
</a>
</div>
<div class="cl"></div>
</div>
</div>
</div>
</body>
</html>

View File

@ -2,18 +2,6 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function clickPublishPoll()
{
hideModal("#popbox02");
$.ajax({
type: "GET",
url: "<%= publish_poll_poll_path(poll.id)%>",
data: 'text',
success: function (data) {
}
});
}
function clickCanel(){hideModal("#popbox02");}
</script>
</head>
@ -27,16 +15,14 @@
是否确定发布该问卷?
</p>
<div class="polls_btn_box">
<%= link_to "确 定",publish_poll_poll_path(poll.id), :class => "upload_btn", :onclick => "clickCanel();" %>
<%= link_to "确 定",publish_poll_poll_path(poll.id,:is_remote => is_remote), :class => "upload_btn", :onclick => "clickCanel();" %>
<a class="upload_btn upload_btn_grey" onclick="clickCanel();">
取&nbsp;&nbsp;消
</a>
</div>
<div class="cl"></div>
</div>
</div>
</div>
</body>
</html>

View File

@ -1,7 +1,7 @@
<div class="ur_page_head ur_editor02"><!--头部显示 start-->
<a href="#" class="ur_icon_edit" title="编辑" onclick="pollsEdit();"></a>
<h1 class="ur_page_title" id="polls_name_h">
<%= poll.polls_name%>
<%= poll.polls_name.empty? ? l(:label_poll_new) : poll.polls_name%>
</h1>
<p class="ur_prefix_content" id="polls_description_p">
<%= @poll.polls_description%>

View File

@ -1,4 +1,55 @@
<%= stylesheet_link_tag 'polls', :media => 'all' %>
<script type="text/javascript">
function republish_poll(poll_id)
{
$('#ajax-modal').html("<div id='popbox02'>" +
"<div class='upload_con'>" +
"<div class='upload_box'>" +
"<p class='polls_box_p'>取消发布后问卷统计结果将会被清空<br />是否确定取消发布该问卷?</p>" +
"<div class='polls_btn_box'>" +
"<a href='/poll/"+ poll_id +"/republish_poll' class='upload_btn' onclick='clickCanel();' data-remote='true'>确&nbsp;&nbsp;定</a>" +
"<a class='upload_btn upload_btn_grey' onclick='clickCanel();'>取&nbsp;&nbsp;消</a>" +
"</div>" +
"<div class='cl'></div>" +
"</div>" +
"</div>" +
"</div>");
showModal('ajax-modal', '310px');
$('#ajax-modal').css('height','110px');
$('#ajax-modal').siblings().remove();
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
"<a onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
$('#ajax-modal').parent().removeClass("alert_praise");
$('#ajax-modal').parent().css("top","").css("left","");
$('#ajax-modal').parent().addClass("popbox_polls");
}
function clickCanel(){hideModal("#popbox02");}
function poll_submit(poll_id)
{
$('#ajax-modal').html("<div id='popbox02'>" +
"<div class='upload_con'>" +
"<div class='upload_box'>" +
"<p class='polls_box_p'>问卷发布后将不能对问卷进行修改,<br />是否确定发布该问卷?</p>" +
"<div class='polls_btn_box'>" +
"<a href='/poll/"+ poll_id +"/publish_poll' class='upload_btn' onclick='clickCanel();' data-remote='true'>确&nbsp;&nbsp;定</a>" +
"<a class='upload_btn upload_btn_grey' onclick='clickCanel();'>取&nbsp;&nbsp;消</a>" +
"</div>" +
"<div class='cl'></div>" +
"</div>" +
"</div>" +
"</div>");
showModal('ajax-modal', '310px');
$('#ajax-modal').css('height','110px');
$('#ajax-modal').siblings().remove();
$('#ajax-modal').before("<span style='float: right;cursor:pointer;'>" +
"<a href='#' onclick='clickCanel();'><img src='/images/bid/close.png' width='26px' height='26px' /></a></span>");
$('#ajax-modal').parent().removeClass("alert_praise");
$('#ajax-modal').parent().css("top","").css("left","");
$('#ajax-modal').parent().addClass("popbox_polls");
}
</script>
<div class="polls_content" id="polls" style="width:677px;">
<div class="polls_head">
<h2>所有问卷
@ -12,44 +63,7 @@
<div class="polls_list">
<% @polls.each do |poll|%>
<ul id="polls_<%= poll.id %>">
<li title="<%= poll.polls_name %>">
<% if @is_teacher %>
<% if has_commit_poll?(poll.id ,User.current) %>
<sapn class="polls_title fl"> <%= poll.polls_name %></sapn>
<% else %>
<%= link_to poll.polls_name, poll_path(poll.id), :class => "polls_title fl" %>
<% end %>
<% else %>
<% if has_commit_poll?(poll.id ,User.current) && poll.polls_status == 2 %>
<sapn class="polls_title fl" >
<%= poll.polls_name %>
</sapn>
<% elsif (!has_commit_poll?(poll.id ,User.current)) && poll.polls_status == 2 %>
<%= link_to poll.polls_name, poll_path(poll.id), :class => "polls_title fl" %>
<% end %>
<% end %>
</li>
<li>
<%if @is_teacher && poll.polls_status == 2%>
<%= link_to l(:label_statistical_results), statistics_result_poll_path(poll.id), :class => "pollsbtn fl ml10"%>
<% end%>
</li>
<li>
<% if @is_teacher %>
<!--新建状态的问卷可删除-->
<%= link_to(l(:button_delete), poll,
method: :delete, :confirm => l(:text_are_you_sure), :remote => true, :class => "polls_de fr ml20 mr10") %>
<% end%>
</li>
<li>
<% if @is_teacher && poll.polls_status == 1%>
<!--新建状态的问卷可编辑-->
<%= link_to l(:button_edit), edit_poll_path(poll.id), :class => "polls_de fr ml20"%>
<% end%>
</li>
<li class="polls_date fr">
<%= format_time poll.created_at%>
</li>
<%= render :partial => 'poll', :locals => {:poll => poll} %>
</ul>
<div class="cl"></div>
<% end%>

View File

@ -0,0 +1,2 @@
$("#polls_<%= @poll.id %>").html("<%= escape_javascript(render :partial => 'poll',:locals => {:poll => @poll}) %>");
alert("发布成功");

View File

@ -0,0 +1,2 @@
$("#polls_<%= @poll.id %>").html("<%= escape_javascript(render :partial => 'poll',:locals => {:poll => @poll}) %>");
alert("取消成功");

View File

@ -122,6 +122,7 @@
else
course_term = "春季学期"
end%>
<%break if Time.new.strftime("%Y").to_i - year_now >= 2%>
<% all_new_hot_course += find_all_new_hot_course(course_count-all_new_hot_course.count, @school_id, year_now, course_term)%>
<% end%>
<%= render :partial => 'course_list', :locals => {:course_list => all_new_hot_course} %>
@ -152,6 +153,7 @@
else
course_term = "春季学期"
end%>
<%break if Time.new.strftime("%Y").to_i - year_now >= 2%>
<% all_new_hot_course += find_all_new_hot_course(9-(all_new_hot_course.count + cur_school_course.count), @school_id, year_now, course_term)%>
<% end%>
<%= render :partial => 'course_list', :locals => {:course_list => all_new_hot_course} %>

View File

@ -16,6 +16,21 @@ module RedmineApp
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
# verifier if email is real
EmailVerifier.config do |config|
config.verifier_email = "lizanle521@126.com"
end
config.generators do |g|
g.test_framework :rspec,
fixtures: true,
view_specs: false,
helper_specs: false,
routing_specs: false,
controller_specs: true,
request_specs: false
g.fixture_replacement :factory_girl, dir: "spec/factories"
end
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W(#{config.root}/lib)

View File

@ -13,7 +13,7 @@ RedmineApp::Application.configure do
config.action_controller.perform_caching = false
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false
config.action_mailer.raise_delivery_errors = true
config.active_support.deprecation = :log
end

View File

@ -71,6 +71,14 @@ en:
one: "almost 1 year"
other: "almost %{count} years"
errors:
messages:
email_verifier:
email_not_real: must point to a real mail account
out_of_mail_server: appears to point to dead mail server
no_mail_server: appears to point to domain which doesn't handle e-mail
failure: could not be checked if is real
exception: could not be sent
number:
format:
separator: "."
@ -130,6 +138,9 @@ en:
circular_dependency: "This relation would create a circular dependency"
cant_link_an_issue_with_a_descendant: "An issue cannot be linked to one of its subtasks"
actionview_instancetag_blank_option: Please select
attachment_all: "All"

View File

@ -2,6 +2,10 @@
# Chinese (China) translations for Ruby on Rails
# by tsechingho (http://github.com/tsechingho)
zh:
# Text direction: Left-to-Right (ltr) or Right-to-Left (rtl)
direction: ltr
jquery:
@ -30,6 +34,17 @@ zh:
- :month
- :day
errors:
messages:
email_verifier:
email_not_real: 必须指定一个真实的邮箱地址
out_of_mail_server: 指向了一个已停用的邮箱服务器
no_mail_server: 域名地址没有邮件功能
failure: 邮箱地址不能被验证
exception: 邮箱不能发送成功
time:
formats:
default: "%Y年%b%d日 %A %H:%M:%S"
@ -138,6 +153,8 @@ zh:
circular_dependency: "此关联将导致循环依赖"
cant_link_an_issue_with_a_descendant: "问题不能关联到它的子任务"
actionview_instancetag_blank_option: 请选择
attachment_all: "全部"

View File

@ -65,6 +65,7 @@ RedmineApp::Application.routes.draw do
post 'create_poll_question'
post 'commit_poll'
get 'publish_poll'
get 'republish_poll'
end
collection do
delete 'delete_poll_question'

View File

@ -0,0 +1,11 @@
class AddInitialProducts < ActiveRecord::Migration
def up
Forum.create(:name =>"new forum", :description => "", :topic_count => "0",
:memo_count => "0", :last_memo_id =>"0", :creator_id =>"2",
:sticky =>"0", :locked =>"0")
end
def down
end
end

View File

@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20150114022710) do
ActiveRecord::Schema.define(:version => 20150121030451) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false

View File

@ -1,4 +1,4 @@
body{ font-size:12px; font-family:"微软雅黑","宋体"; line-height:1.9; background:#fff; font-style:normal;}
#member_of_course{ font-size:12px; font-family:"微软雅黑","宋体"; line-height:1.9; background:#fff; font-style:normal;}
div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span,textarea,form{ margin:0; padding:0;}
div,img,tr,td,textarea,form{ border:0;}
table,tr,td{border:0; cellspacing:0; cellpadding:0;}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -19,15 +19,15 @@ div,html,img,ul,li,p,body,h1,h2,h3,h4,p,a,table,tr,td,fieldset,input,span{ margi
.polls_btn span{ color:#15bed1; font-size:12px; font-weight:normal;}
/*问卷列表*/
.polls_content{ width:615px;}
.polls_content{ width:615px;padding-left: 6px;}
.polls_head{ width:677px; height:48px; background:#eaeaea;}
.polls_head h2{ float:left; font-size:14px; color:#585858; margin:11px 0 0 10px;}
.polls_head span{ font-weight:normal; color:#15bccf;}
a.newbtn{ float:right; display:block; width:80px; height:30px; background:#64bdd9; color:#fff; font-size:14px; margin:10px; text-align:center;}
a:hover.newbtn{ background:#55a1b9; text-decoration:none;}
.polls_list ul{ padding-left:10px; border-bottom:1px dashed #c9c9c9; height:32px; padding-top:8px;}
a.polls_title{ font-weight:bold; color:#3e6d8e;max-width: 350px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
.polls_title{ font-weight:bold; color:#3e6d8e;}
a.polls_title{ font-weight:bold; color:#3e6d8e;max-width: 300px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
.polls_title{ font-weight:bold; color:#3e6d8e;max-width: 300px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
a.pollsbtn{ display:block; width:66px; height:22px; text-align:center; border:1px solid #64bdd9; color:#64bdd9;}
a:hover.pollsbtn{ background:#64bdd9; color:#fff; text-decoration:none;}
.polls_date{ color:#666666;}
@ -134,3 +134,14 @@ a:hover.upload_btn_grey{background:#8a8a8a;}
.upload_con a:hover{ text-decoration:none;}
.polls_btn_box{ width:145px; margin:0 auto; padding-left:10px;}
.polls_btn_box02{ width:80px; margin:0 auto; padding-left:10px;}
/***新增20150120***/
.pollsbtn_tip{ width:30px; height:17px; display:block;background:url(images/icons.png) 0 -372px no-repeat;padding-left:7px; color:#fff;}
a.btn_de{ border:1px solid #ff5d31; color:#ff5d31; }
a:hover.btn_de{ background:#ff5d31;}
a.btn_pu{ border:1px solid #3cb761; color:#3cb761; }
a:hover.btn_pu{ background:#3cb761;}
.pollsbtn_grey{ border:1px solid #b1b1b1; color:#b1b1b1; padding:0px 9px; }
.polls_title_w { width:330px; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
.polls_de_grey{ color:#b1b1b1;}
.ml5{ margin-left:5px;}

38
spec/spec_helper.rb Normal file
View File

@ -0,0 +1,38 @@
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
RSpec.configure do |config|
# ## Mock Framework
#
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
#
# config.mock_with :mocha
# config.mock_with :flexmock
# config.mock_with :rr
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
config.fixture_path = "#{::Rails.root}/spec/fixtures"
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
config.use_transactional_fixtures = true
# If true, the base class of anonymous controllers will be inferred
# automatically. This will be the default behavior in future versions of
# rspec-rails.
config.infer_base_class_for_anonymous_controllers = false
# Run specs in random order to surface order dependencies. If you find an
# order dependency and want to debug it, you can fix the order by providing
# the seed, which is printed after each run.
# --seed 1234
config.order = "random"
end