summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--help/app/models/ticket.rb13
-rw-r--r--help/app/models/ticket_comment.rb4
-rw-r--r--help/app/views/tickets/_comment.html.haml6
-rw-r--r--help/app/views/tickets/_ticket_data.html.haml18
-rw-r--r--help/app/views/tickets/new.html.haml2
5 files changed, 29 insertions, 14 deletions
diff --git a/help/app/models/ticket.rb b/help/app/models/ticket.rb
index fed2b8b..262d5a4 100644
--- a/help/app/models/ticket.rb
+++ b/help/app/models/ticket.rb
@@ -30,7 +30,7 @@ class Ticket < CouchRest::Model::Base
timestamps!
#before_validation :set_created_by, :set_code, :set_email, :on => :create
- before_validation :set_email, :on => :create
+ before_validation :set_email, :set_regarding_user, :on => :create
#named_scope :open, :conditions => {:is_open => true} #??
@@ -171,6 +171,10 @@ class Ticket < CouchRest::Model::Base
# in controller set to be current users email if that exists
end
+ def set_regarding_user
+ self.regarding_user = nil if self.regarding_user == ""
+ end
+
#not saving with close and reopen, as we will save in update when they are called.
#TODO: not sure if we should bother with these:
def close
@@ -209,6 +213,13 @@ class Ticket < CouchRest::Model::Base
end
end
+ def created_by_user
+ User.find(self.created_by)
+ end
+
+ def regarding_user_actual_user
+ User.find_by_login(self.regarding_user)
+ end
=begin
def validate
if email_address and not email_address.strip =~ RFC822::EmailAddress
diff --git a/help/app/models/ticket_comment.rb b/help/app/models/ticket_comment.rb
index 18da3e1..1df7eec 100644
--- a/help/app/models/ticket_comment.rb
+++ b/help/app/models/ticket_comment.rb
@@ -22,6 +22,10 @@ class TicketComment
!!posted_by
end
+ def posted_by_user
+ User.find(self.posted_by)
+ end
+
=begin
#TODO.
#this is resetting all comments associated with the ticket:
diff --git a/help/app/views/tickets/_comment.html.haml b/help/app/views/tickets/_comment.html.haml
index ae7f1d4..01cf01a 100644
--- a/help/app/views/tickets/_comment.html.haml
+++ b/help/app/views/tickets/_comment.html.haml
@@ -2,10 +2,10 @@
- if admin? or !comment.private # only show comment if user is admin or comment is not private
%tr
%td
- - if commenter = User.find(comment.posted_by)
+ - if comment.posted_by_user
%b
- = 'Posted by' + (commenter.is_admin? ? ' admin' : '') + ':'
- = commenter.login
+ = 'Posted by' + (comment.posted_by_user.is_admin? ? ' admin' : '') + ':'
+ = comment.posted_by_user.login
- else
Unauthenticated post
- if comment.private
diff --git a/help/app/views/tickets/_ticket_data.html.haml b/help/app/views/tickets/_ticket_data.html.haml
index fd5d3bf..2261d8f 100644
--- a/help/app/views/tickets/_ticket_data.html.haml
+++ b/help/app/views/tickets/_ticket_data.html.haml
@@ -1,20 +1,20 @@
.spam12
%b
Created by:
- - if creator = User.find(@ticket.created_by)
- - if !creator.is_admin?
- = link_to creator.login, edit_user_path(creator)
- - else
- = creator.login
+ - if @ticket.created_by_user
+ = link_to @ticket.created_by_user.login, edit_user_path(@ticket.created_by_user) #todo: won't want edit path
- else
Unauthenticated ticket creator
- if @ticket.regarding_user
%b
Regarding user:
- - if regarding_user = User.find_by_login(@ticket.regarding_user)
- = link_to @ticket.regarding_user, edit_user_path(regarding_user)
- - else
- = @ticket.regarding_user + '(no such user)'
+ - if admin?
+ - if @ticket.regarding_user_actual_user
+ = link_to @ticket.regarding_user_actual_user.login, edit_user_path(@ticket.regarding_user_actual_user) #todo: won't want edit path
+ - else
+ = @ticket.regarding_user + ' (no such user)'
+ - else # a non-admin is viewing the ticket, so they shouldn't see confirmation of whether the regarding_user exists or not.
+ = @ticket.regarding_user
- if @ticket.email
%b
email:
diff --git a/help/app/views/tickets/new.html.haml b/help/app/views/tickets/new.html.haml
index 79a9af7..af8baad 100644
--- a/help/app/views/tickets/new.html.haml
+++ b/help/app/views/tickets/new.html.haml
@@ -3,7 +3,7 @@
= simple_form_for(@ticket, :html => {:novalidate => true}) do |f| #turn off html5 validations to test
= f.input :title
= f.input :email if !current_user #hmm--might authenticated users want to submit an alternate email?
- = f.input :regarding_user if !current_user
+ = f.input :regarding_user
= render :partial => 'new_comment', :locals => {:f => f}
.form-actions
= f.button :submit, :class => 'btn-primary'