clarat-org / clarat

An Open Source Charity Directory
http://www.clarat.org/
MIT License
8 stars 10 forks source link

contact_people im Angebot über die E-Mail findbar machen #1426

Closed Twiek closed 6 years ago

Twiek commented 6 years ago

Nice to have: Telefonnummer.

Twiek commented 6 years ago

Deploy ToDo: Alle Labels updaten.

NilsVollmer commented 6 years ago

Habe den Code gerade nochmal angeschaut: so funktioniert das leider nicht. Da das Label nur eine methode ist, wird man danach nicht suchen können. Damit das funktioniert, muss es extra eine Datenbankfeld dafür geben, dass in der update operation immer aktualisiert wird (vgl. z.B. Division oder Location).

Also vorausgesetzt, dass man die Contactpeople nach ihren mails durchsuchen können soll.

NilsVollmer commented 6 years ago

PRs gemerged - bitte noch den Deploy Todo Code hier ins issue schreiben ;)

allthegoldt commented 6 years ago

Deploy ToDo:

def label_suffix(cp)
  "(#{cp.organization&.name}) #{cp.email&.address}"\
  " #{cp.area_code_1} #{cp.local_number_1}".squeeze(' ')
end

def position_label(cp)
  if cp.position.present?
    I18n.t("enumerize.contact_person.position.#{cp.position}") + ': '
  else
    ''
  end
end

ContactPerson.all.each do |cp|
    position_label = position_label(cp)
    label = if cp.first_name.blank? && cp.last_name.blank?
              "#{position_label}##{cp.id} #{cp.operational_name} "
            else
              "#{position_label}##{cp.id} #{cp.first_name}"\
              " #{cp.last_name} "
            end
    cp.update_columns label: label + label_suffix(cp)
end