class Journalist

Clase para los usuarios de tipo “Periodista”. Es subclase de User, por lo que su tabla es users

Attributes

normas_de_uso[RW]

Public Instance Methods

can_create?(doc_type) click to toggle source

Indica si el usuario puede crear contenidos de tipo doc_type Los tipos de contenido disponibles se pueden consultar en #Permission

# File app/models/journalist.rb, line 57
def can_create?(doc_type)
  doc_type.eql?("comments")
end
delete_pending_alerts_for_old_departments() click to toggle source
# File app/models/journalist.rb, line 39
def delete_pending_alerts_for_old_departments
  EventAlert.unsent.find(:all, 
    :conditions => "spammable_id=#{self.id} AND spammable_type='Journalist'").each do |alert|
      alert.destroy unless self.department_ids.include?(alert.event.department.id)
    end
end
organization_ids() click to toggle source

Devuelve un array con los departamentos y organismos a los que está suscrito

# File app/models/journalist.rb, line 47
def organization_ids
  o_ids = []
  self.departments.each do |dept|
    o_ids = o_ids + [dept.id]+dept.organization_ids
  end
  o_ids
end
save_departments() click to toggle source
# File app/models/journalist.rb, line 62
def save_departments
  self.subscriptions.each {|s| s.save}
end

Protected Instance Methods

enable_event_alerts() click to toggle source
# File app/models/journalist.rb, line 100
def enable_event_alerts
  self.alerts_locale = I18n.locale if  self.alerts_locale.nil?
end
reset_unnecessary_fields() click to toggle source

Vacia los campos irrelevantes para este tipo de usuario. Se llama desde before_save

# File app/models/journalist.rb, line 70
def reset_unnecessary_fields
  self.department_id = nil
  self.stream_flow_ids = []
  self.raw_location = nil
  self.lat = nil
  self.lng = nil
  self.city = nil
  self.state = nil
  self.country_code = nil
  self.zip = nil
  self.photo_file_name = nil
  self.photo_content_type = nil
  self.photo_file_size = nil
  self.photo_updated_at = nil
  self.public_role_es = nil
  self.public_role_eu = nil
  self.public_role_en = nil
  self.gc_id = nil
  self.description_es = nil
  self.description_eu = nil
  self.description_en = nil
  self.politician_has_agenda = nil
end
set_pending_status() click to toggle source

Los periodistas quedan en estado de “pendientes de aprobación” cuando se dan de alta. Se llama desde before_create

# File app/models/journalist.rb, line 96
def set_pending_status
  self.status = "pendiente"
end