diff options
Diffstat (limited to 'help/app/models/ticket.rb')
| -rw-r--r-- | help/app/models/ticket.rb | 43 | 
1 files changed, 32 insertions, 11 deletions
| diff --git a/help/app/models/ticket.rb b/help/app/models/ticket.rb index f38fed2..3b66fe4 100644 --- a/help/app/models/ticket.rb +++ b/help/app/models/ticket.rb @@ -23,20 +23,24 @@ class Ticket < CouchRest::Model::Base    #property :user_verified, TrueClass, :default => false #will be true exactly when user is set    #admins -  property :code, String, :protected => true # only should be set if created_by is nil +  #property :code, String, :protected => true # only should be set if created_by is nil #instead we will just use couchdb ID    property :is_open, TrueClass, :default => true    property :comments, [TicketComment]    timestamps!    #before_validation :set_created_by, :set_code, :set_email, :on => :create -  before_validation :set_code, :set_email, :on => :create +  before_validation :set_email, :on => :create    #named_scope :open, :conditions => {:is_open => true} #??    design do      view :by_title +    view :by_is_open +    view :by_created_by +    view :by_is_open_and_created_by +    end    validates :title, :presence => true @@ -55,10 +59,12 @@ class Ticket < CouchRest::Model::Base      !!created_by    end -  def set_code +=begin +  def set_code #let's not use this---can use same show url      # ruby 1.9 provides url-safe option---this is not necessarily url-safe      self.code = SecureRandom.hex(8) if !is_creator_validated?    end +=end    def set_email @@ -66,23 +72,38 @@ class Ticket < CouchRest::Model::Base      # in controller set to be current users email if that exists    end +  #not saving with close and reopen, as we will save in update when they are called.    def close      self.is_open = false -    save +    #save    end    def reopen      self.is_open = true -    save +    #save    end -  def comments_attributes=(attributes) +  def commenters  +    commenters = [] +    self.comments.each do |comment| +      if comment.posted_by +        user = User.find(comment.posted_by)  +        commenters << user.login if user and !commenters.include?(user.login) +      else +        commenters << 'unauthenticated user' if !commenters.include?('unauthenticated user') #todo don't hardcode string 'unauthenticated user'  +      end +    end +    commenters.join(', ') +  end -    comment = TicketComment.new(attributes.values.first) #TicketComment.new(attributes) -    #comment.posted_by = User.current.id if User.current #we want to avoid User.current, and current_user won't work here. instead will set in tickets_controller -    comment.posted_at = Time.now -    comments << comment -     +  def comments_attributes=(attributes) +    if attributes # could be empty as we will empty if nothing was typed in +      comment = TicketComment.new(attributes.values.first) #TicketComment.new(attributes) +      #comment.posted_by = User.current.id if User.current #we want to avoid User.current, and current_user won't work here. instead will set in tickets_controller +      # what about: comment.posted_by = self.updated_by  (will need to add ticket.updated_by) +      comment.posted_at = Time.now +      comments << comment +    end    end  =begin | 
