diff options
| author | Azul <azul@leap.se> | 2014-04-11 10:03:19 +0200 | 
|---|---|---|
| committer | Azul <azul@leap.se> | 2014-04-11 10:07:23 +0200 | 
| commit | 636692f9921bd695d726695d2d46c91f5a6e56f3 (patch) | |
| tree | a7cc0b89007bd273ae7719f31c16e052a141fec7 /help/app/models | |
| parent | 32136605ddd405a0bf47f3b795b22fd4b49465b5 (diff) | |
move engines into engines directory
Also renamed help to support so it's harder to confuse it with documentation
Diffstat (limited to 'help/app/models')
| -rw-r--r-- | help/app/models/account_extension/tickets.rb | 13 | ||||
| -rw-r--r-- | help/app/models/ticket.rb | 105 | ||||
| -rw-r--r-- | help/app/models/ticket_comment.rb | 43 | ||||
| -rw-r--r-- | help/app/models/ticket_selection.rb | 71 | 
4 files changed, 0 insertions, 232 deletions
| diff --git a/help/app/models/account_extension/tickets.rb b/help/app/models/account_extension/tickets.rb deleted file mode 100644 index f898b56..0000000 --- a/help/app/models/account_extension/tickets.rb +++ /dev/null @@ -1,13 +0,0 @@ -module AccountExtension::Tickets -  extend ActiveSupport::Concern - -  def destroy_with_tickets -    Ticket.destroy_all_from(self.user) -    destroy_without_tickets -  end - -  included do -    alias_method_chain :destroy, :tickets -  end - -end diff --git a/help/app/models/ticket.rb b/help/app/models/ticket.rb deleted file mode 100644 index cd22758..0000000 --- a/help/app/models/ticket.rb +++ /dev/null @@ -1,105 +0,0 @@ -# -# TODO: thought i should reverse keys for descending, but that didn't work. -# look into whether that should be tweaked, and whether it works okay with -# pagination (seems to now...) -# -# TODO: better validation of email -# -# TODO: don't hardcode strings 'unknown user' and 'unauthenticated user' -# -class Ticket < CouchRest::Model::Base -  use_database "tickets" - -  property :created_by,     String, :protected => true  # nil for anonymous tickets, should never be changed -  property :regarding_user, String                      # may be nil or valid username -  property :subject,        String -  property :email,          String -  property :is_open,        TrueClass, :default => true -  property :comments,       [TicketComment] - -  timestamps! - -  before_validation :set_email, :set_regarding_user, :on => :create - -  design do -    view :by_updated_at -    view :by_created_at -    view :by_created_by - -    view :by_is_open_and_created_at -    view :by_is_open_and_updated_at - -    own_path = Pathname.new(File.dirname(__FILE__)) -    load_views(own_path.join('..', 'designs', 'ticket')) -  end - -  validates :subject, :presence => true -  validates :email, :allow_blank => true, :format => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/ - -  def self.search(options = {}) -    @selection = TicketSelection.new(options) -    @selection.tickets -  end - -  def self.destroy_all_from(user) -    self.by_created_by.key(user.id).each do |ticket| -      ticket.destroy -    end -  end - -  def is_creator_validated? -    !!created_by -  end - -  def set_email -    self.email = nil if self.email == "" -  end - -  def set_regarding_user -    self.regarding_user = nil if self.regarding_user == "" -  end - -  def close -    self.is_open = false -  end - -  def reopen -    self.is_open = true -  end - -  def commenters -    commenters = [] -    self.comments.each do |comment| -      if comment.posted_by -        if user = User.find(comment.posted_by) -          commenters << user.login if user and !commenters.include?(user.login) -        else -          commenters << 'unknown user' if !commenters.include?('unknown user') -        end -      else -        commenters << 'unauthenticated user' if !commenters.include?('unauthenticated user') -      end -    end -    commenters.join(', ') -  end - -  # -  # update comments. User should be set by controller. -  # -  def comments_attributes=(attributes) -    if attributes -      comment = TicketComment.new(attributes.values.first) -      comment.posted_at = Time.now -      comments << comment -    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 - -end diff --git a/help/app/models/ticket_comment.rb b/help/app/models/ticket_comment.rb deleted file mode 100644 index bed5237..0000000 --- a/help/app/models/ticket_comment.rb +++ /dev/null @@ -1,43 +0,0 @@ -class TicketComment -  include CouchRest::Model::Embeddable - -  #belongs_to :ticket #is this best way to do it? will want to access all of a tickets comments, so maybe this isn't the way? -  property :posted_by, String#, :protected => true #Integer#this should be current_user if that is set, meaning the user is logged in  #cannot have it be protected and set via comments_attributes=. also, if it is protected and we set in the tickets_controller, it gets unset. TODO---is this okay to have it not protected and manually check it? We do not users to be able to set this. -  # if the current user is not set, then we could just say the comment comes from an 'unauthenticated user', which would be somebody with the secret URL -  property :posted_at, Time#, :protected => true -  #property :posted_verified, TrueClass, :protected => true #should be true if current_user is set when the comment is created -  property :body, String -  property :private, TrueClass # private comments are only viewable by admins  #this is checked when set, to make sure it was set by an admin - -  # ? timestamps! -  validates :body, :presence => true -  #before_validation :set_time#, :set_posted_by - -  #design do -  #  view :by_posted_at -  #  view :by_body -  #end - -  def is_comment_validated? -    !!posted_by -  end - -  def posted_by_user -    User.find(posted_by) if posted_by -  end - -=begin -  #TODO. -  #this is resetting all comments associated with the ticket: -  def set_time -    self.posted_at = Time.now -  end -=end - -=begin -  def set_posted_by -    self.posted_by = User.current if User.current -  end -=end - -end diff --git a/help/app/models/ticket_selection.rb b/help/app/models/ticket_selection.rb deleted file mode 100644 index 74d5b78..0000000 --- a/help/app/models/ticket_selection.rb +++ /dev/null @@ -1,71 +0,0 @@ -class TicketSelection - -  # -  # supported options: -  # -  # user_id:      id of the user (uuid string) -  # open_status:  open | closed | all -  # sort_order:   updated_at_desc | updated_at_asc | created_at_desc | created_at_asc -  # admin_status: mine | all -  # is_admin:     true | false -  # -  def initialize(options = {}) -    @user_id      = options[:user_id].gsub /[^a-z0-9]/, '' -    @open_status  = allow options[:open_status],  'open', 'closed', 'all' -    @sort_order   = allow options[:sort_order],   'updated_at_desc', 'updated_at_asc', 'created_at_desc', 'created_at_asc' -    @admin_status = allow options[:admin_status], 'mine', 'all' -    @is_admin     = allow options[:is_admin],     false, true -  end - -  def tickets -    Ticket.send(finder_method).startkey(startkey).endkey(endkey).send(order) -  end - -  protected - -  def allow(source, *allowed) -    if allowed.include?(source) -      source -    else -      allowed.first -    end -  end - -  def finder_method -    method = 'by_' -    method += 'includes_post_by_and_' if only_mine? -    method += 'is_open_and_' if @open_status != 'all' -    method += @sort_order.sub(/_(de|a)sc$/, '') -  end - -  def startkey -    startkeys = [] -    startkeys << @user_id if only_mine? -    startkeys << (@open_status == 'open') if @open_status != 'all' -    startkeys << 0 -    startkeys = startkeys.join if startkeys.length == 1 # want string not array if just one thing in array -    startkeys -  end - -  def endkey -    endtime = Time.now + 2.days # TODO. this obviously isn't ideal -    if self.startkey.is_a?(Array) -      endkeys = self.startkey -      endkeys.pop -      endkeys << endtime -    else -      endtime -    end -  end - -  def order -    # we have defined the ascending method to return the view itself: -    (@sort_order.end_with? 'desc') ? 'descending' : 'ascending' -  end - - -  def only_mine? -    !@is_admin || @admin_status == 'mine' -  end - -end | 
