attr_accessor :author_id_of_changes
validates_presence_of :project_id
- validates_presence_of :assignee_id
validates_presence_of :author_id
delegate :name,
delegate :name,
:email,
:to => :assignee,
+ :allow_nil => true,
:prefix => true
validates :title,
today? && created_at == updated_at
end
+ def is_assigned?
+ !!assignee_id
+ end
+
def is_being_reassigned?
assignee_id_changed?
end
cattr_accessor :current_user
def after_create(issue)
- Notify.new_issue_email(issue.id).deliver if issue.assignee != current_user
+ if issue.assignee && issue.assignee != current_user
+ Notify.new_issue_email(issue.id).deliver
+ end
end
def after_update(issue)
protected
def send_reassigned_email(issue)
- recipient_ids = [issue.assignee_id, issue.assignee_id_was].keep_if {|id| id != current_user.id }
+ recipient_ids = [issue.assignee_id, issue.assignee_id_was].keep_if {|id| id && id != current_user.id }
recipient_ids.each do |recipient_id|
Notify.reassigned_issue_email(recipient_id, issue.id, issue.assignee_id_was).deliver
= f.text_field :title, :maxlength => 255, :class => "xxlarge"
.issue_middle_block
.issue_assignee
- = f.label :assignee_id, "Assign to *"
+ = f.label :assignee_id, "Assign to"
.input= f.select(:assignee_id, @project.users.all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Assign to user" })
.issue_milestone
= f.label :milestone_id
%i.icon-edit
Edit
- = image_tag gravatar_icon(issue.assignee_email), :class => "avatar"
- %span.update-author
- assigned to
- %strong= issue.assignee_name
- - if issue.upvotes > 0
- %span.badge.badge-success= "+#{issue.upvotes}"
-
+ - if issue.assignee
+ = image_tag gravatar_icon(issue.assignee_email), :class => "avatar"
+ %span.update-author
+ assigned to
+ %strong= issue.assignee_name
+ - if issue.upvotes > 0
+ %span.badge.badge-success= "+#{issue.upvotes}"
+
+ - else
+ = image_tag "no_avatar.png", :class => "avatar"
+ %span.update-author
+ Unassigned
+ - if issue.upvotes > 0
+ %span.badge.badge-success= "+#{issue.upvotes}"
+
= link_to project_issue_path(issue.project, issue) do
%p.row_title= truncate(issue.title, :length => 100)
= image_tag gravatar_icon(@issue.author_email), :width => 16, :class => "lil_av"
%strong.author= link_to_issue_author(@issue)
- %cite.cgray and currently assigned to
- = image_tag gravatar_icon(@issue.assignee_email), :width => 16, :class => "lil_av"
- %strong.author= link_to_issue_assignee(@issue)
+ - if @issue.assignee
+ %cite.cgray and currently assigned to
+ = image_tag gravatar_icon(@issue.assignee_email), :width => 16, :class => "lil_av"
+ %strong.author= link_to_issue_assignee(@issue)
- if @issue.milestone
- milestone = @issue.milestone
%tr
%td
= link_to [@project, issue] do
- = image_tag gravatar_icon(issue.assignee_email, 16), :width => "16"
-
%span.badge.badge-info ##{issue.id}
–
= truncate issue.title, :length => 60
it { should validate_presence_of(:title) }
it { should validate_presence_of(:author_id) }
it { should validate_presence_of(:project_id) }
- it { should validate_presence_of(:assignee_id) }
end
describe "Scope" do