Clase para los usuarios de tipo “Periodista”. Es subclase de User, por lo que su tabla es users
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
# 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
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
# File app/models/journalist.rb, line 62 def save_departments self.subscriptions.each {|s| s.save} end
# File app/models/journalist.rb, line 100 def enable_event_alerts self.alerts_locale = I18n.locale if self.alerts_locale.nil? end
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
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