Newer
Older
dmpopidor / app / models / user / at_csv.rb
class User
  class AtCsv

    HEADERS = ['Name', 'E-Mail', 'Created Date', 'Last Activity', 'Plans', 'Current Privileges', 'Department', 'Active']

    def initialize(users)
      @users = users
    end

    def to_csv
      CSV.generate(headers: true) do |csv|
        csv << HEADERS
        @users.each do |user|
          name = "#{user.firstname} #{user.surname}"
          email = user.email
          created = I18n.l user.created_at.to_date, format: :csv
          last_activity = I18n.l user.updated_at.to_date, format: :csv
          plans = user.plans.size
          department = user.department ? user.department.name : ''
          active = user.active ? 'Yes' : 'No'

          if user.can_super_admin?
            current_privileges = 'Super Admin'
          elsif  user.can_org_admin?
            current_privileges = 'Organisational Admin'
          else
            current_privileges = ''
          end

          csv << [ name, email, created, last_activity, plans, current_privileges, department, active ]
        end
      end
    end

  end
end