class Politician

OpenIrekia v4.0.0

Copyright 2009-2013 eFaber, S.L. Copyright 2009-2013 Ejie, S.A. Copyrigth 2009-2013 Dirección de Gobierno Abierto y Comunicación en Internet;

Gobernu Irekirako eta Interneteko Komunikaziorako Zuzendaritza; Lehendakaritza.
Gobierno Vasco – Eusko Jaurlaritza

Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto sean aprobadas por la Comisión Europea– versiones posteriores de la EUPL (la Licencia); Solo podrá usarse esta obra si se respeta la Licencia. Puede obtenerse una copia de la Licencia en: ec.europa.eu/idabc/eupl Salvo cuando lo exija la legislación aplicable o se acuerde por escrito, el programa distribuido con arreglo a la Licencia se distribuye TAL CUAL, SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ni expresas ni implícitas. Véase la Licencia en el idioma concreto que rige los permisos y limitaciones que establece la Licencia

http://open.irekia.net, openirekia@efaber.net

Public Instance Methods

approved_and_published_proposals() click to toggle source

Propuestas de un político: las que ha hecho él

# File app/models/politician.rb, line 134
def approved_and_published_proposals
  self.proposals.published.approved
end
approved_headlines() click to toggle source
# File app/models/politician.rb, line 138
def approved_headlines
  
end
approved_or_ex?() click to toggle source
# File app/models/politician.rb, line 53
def approved_or_ex?
  ['aprobado', 'ex-cargo'].include?(self.status)
end
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/politician.rb, line 171
def can_create?(doc_type)
  case doc_type
  when 'schedule_events'
    !self.editable_schedules.blank?
  when 'events'
    self.can?('create_private', 'events') || self.can?('create_irekia', 'events') 
  when 'comments'
    self.can?('create', 'comments') || self.can?('official', 'comments') 
  else
    self.can?('create', doc_type)
  end
end
can_edit?(doc_type) click to toggle source

Los permisos se asignan presonalmente igual que en el caso de los miembros de dept.

Indica si puede modificar recursos de tipo doc_type. Los miembros de los departamentos no pueden modificar ni crear recursos compartidos. Sólo tendrán acceso a la agenda privada de su departamento.

# File app/models/politician.rb, line 156
def can_edit?(doc_type)
  case doc_type
  when 'schedule_events'
    !self.editable_schedules.blank?
  when 'events'
    self.can?('create_private', 'events') || self.can?('create_irekia', 'events')
  when 'comments'
    self.can?('edit', 'comments')
  else
    self.can?('edit', doc_type)
  end
end
draft() click to toggle source
# File app/models/politician.rb, line 61
def draft
  false
end
former?() click to toggle source
# File app/models/politician.rb, line 57
def former?
  self.status.eql?('ex-cargo')
end
has_admin_access?() click to toggle source
# File app/models/politician.rb, line 142
def has_admin_access?
  self.can?('create', 'news') || self.can?('create', 'proposals') || self.can?('create', 'comments') # HQ || self.can?('create', 'questions')
end
public_name_and_role(locale = I18n.locale) click to toggle source
# File app/models/politician.rb, line 93
def public_name_and_role(locale = I18n.locale)
  txt = self.public_name
  
  role = self.send("public_role_#{locale}") || self.public_role
  txt += " (#{role})" if role.present?
  
  txt.strip
end
public_role() click to toggle source
# File app/models/politician.rb, line 89
def public_role
  self.former? && !self.public_role_orig.match(/^Ex-/) ? "Ex-#{self.public_role_orig}" : self.public_role_orig
end
Also aliased as: public_role_orig
public_role_orig()

Redefinimos el método #public_role para poder añadir “Ex-” para los excargos.

Alias for: public_role
published?() click to toggle source
# File app/models/politician.rb, line 110
def published?
  self.approved?
end
show_in_irekia?() click to toggle source
# File app/models/politician.rb, line 65
def show_in_irekia?
  true
end
tag() click to toggle source
# File app/models/politician.rb, line 69
def tag
  Tag.politicians.find_by_kind_info(self.id.to_s)
end
tag_name() click to toggle source
# File app/models/politician.rb, line 73
def tag_name
  self.tag.present? ? self.tag.name : ''
end
tag_name_es() click to toggle source
# File app/models/politician.rb, line 77
def tag_name_es
  @tag_name_es ||= self.tag.present? ? self.tag.name_es : ''
end
to_yaml( opts = {} ) click to toggle source

/permisos

# File app/models/politician.rb, line 186
def to_yaml( opts = {} )
  if self.photo.present?
    FileUtils.cp(self.photo.path, File.join(RAILS_ROOT, 'data', 'fotos_politicos'))
  end
  YAML.quick_emit( self.id, opts ) { |out|
    out.map( taguri, to_yaml_style ) { |map|
      atr = @attributes.dup
      atr["area_tag_names"] = self.areas.map {|a| a.tag_name_es}
      atr["area_positions"] = self.area_users.map {|au| au.position}
      atr["filename4photo"] = self.photo.present? ? File.basename(self.photo.path) : ''
      map.add("attributes",  atr)
    }
  }
end