decidim-verifications 0.30.3 → 0.31.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +5 -5
 - data/app/commands/decidim/verifications/csv_census/admin/create_census_data.rb +5 -4
 - data/app/commands/decidim/verifications/csv_census/admin/create_census_record.rb +23 -0
 - data/app/commands/decidim/verifications/csv_census/admin/update_census_record.rb +15 -0
 - data/app/controllers/concerns/decidim/verifications/admin/filterable.rb +26 -0
 - data/app/controllers/decidim/verifications/authorizations_controller.rb +1 -2
 - data/app/controllers/decidim/verifications/csv_census/admin/census_controller.rb +58 -14
 - data/app/controllers/decidim/verifications/csv_census/admin/census_records_controller.rb +63 -0
 - data/app/controllers/decidim/verifications/id_documents/admin/config_controller.rb +1 -1
 - data/app/controllers/decidim/verifications/id_documents/admin/confirmations_controller.rb +1 -1
 - data/app/controllers/decidim/verifications/id_documents/admin/offline_confirmations_controller.rb +1 -1
 - data/app/controllers/decidim/verifications/id_documents/authorizations_controller.rb +2 -2
 - data/app/controllers/decidim/verifications/postal_letter/authorizations_controller.rb +2 -2
 - data/app/controllers/decidim/verifications/sms/authorizations_controller.rb +2 -2
 - data/app/forms/decidim/verifications/csv_census/admin/census_data_form.rb +29 -3
 - data/app/forms/decidim/verifications/csv_census/admin/census_form.rb +29 -0
 - data/app/forms/decidim/verifications/sms/mobile_phone_form.rb +2 -2
 - data/app/jobs/decidim/verifications/csv_census/process_census_data_job.rb +49 -0
 - data/app/models/decidim/verifications/csv_census/data.rb +13 -1
 - data/app/models/decidim/verifications/csv_datum.rb +21 -0
 - data/app/packs/entrypoints/decidim_verifications.js +3 -0
 - data/app/packs/src/csv_census.js +47 -0
 - data/app/presenters/decidim/verifications/admin_log/csv_datum_presenter.rb +45 -0
 - data/app/services/decidim/authorization_handler.rb +1 -1
 - data/app/views/decidim/verifications/authorizations/new.html.erb +1 -1
 - data/app/views/decidim/verifications/authorizations/onboarding_pending.html.erb +1 -1
 - data/app/views/decidim/verifications/csv_census/admin/census/_csv_census_drawer.html.erb +5 -0
 - data/app/views/decidim/verifications/csv_census/admin/census/index.html.erb +73 -51
 - data/app/views/decidim/verifications/csv_census/admin/census/new_import.html.erb +27 -0
 - data/app/views/decidim/verifications/csv_census/admin/census_records/_form.html.erb +9 -0
 - data/app/views/decidim/verifications/csv_census/admin/census_records/edit_record.html.erb +14 -0
 - data/app/views/decidim/verifications/csv_census/admin/census_records/new_record.html.erb +14 -0
 - data/app/views/decidim/verifications/postal_letter/admin/pending_authorizations/index.html.erb +33 -17
 - data/config/assets.rb +2 -2
 - data/config/locales/ar.yml +0 -5
 - data/config/locales/bg.yml +0 -12
 - data/config/locales/ca-IT.yml +62 -17
 - data/config/locales/ca.yml +62 -17
 - data/config/locales/cs.yml +42 -16
 - data/config/locales/de.yml +61 -17
 - data/config/locales/el.yml +0 -5
 - data/config/locales/en.yml +62 -17
 - data/config/locales/es-MX.yml +62 -17
 - data/config/locales/es-PY.yml +62 -17
 - data/config/locales/es.yml +62 -17
 - data/config/locales/eu.yml +66 -21
 - data/config/locales/fi-plain.yml +62 -17
 - data/config/locales/fi.yml +62 -17
 - data/config/locales/fr-CA.yml +5 -12
 - data/config/locales/fr.yml +5 -12
 - data/config/locales/gl.yml +0 -5
 - data/config/locales/hu.yml +0 -12
 - data/config/locales/id-ID.yml +0 -5
 - data/config/locales/it.yml +0 -5
 - data/config/locales/ja.yml +62 -17
 - data/config/locales/lt.yml +0 -12
 - data/config/locales/lv.yml +0 -5
 - data/config/locales/nl.yml +0 -5
 - data/config/locales/no.yml +0 -5
 - data/config/locales/pl.yml +0 -12
 - data/config/locales/pt-BR.yml +0 -5
 - data/config/locales/pt.yml +0 -5
 - data/config/locales/ro-RO.yml +40 -8
 - data/config/locales/sk.yml +0 -5
 - data/config/locales/sv.yml +61 -17
 - data/config/locales/tr-TR.yml +0 -5
 - data/config/locales/zh-CN.yml +0 -5
 - data/config/locales/zh-TW.yml +0 -12
 - data/lib/decidim/verifications/adapter.rb +3 -3
 - data/lib/decidim/verifications/csv_census/admin_engine.rb +10 -2
 - data/lib/decidim/verifications/engine.rb +1 -1
 - data/lib/decidim/verifications/version.rb +1 -1
 - data/lib/decidim/verifications/workflows.rb +3 -58
 - data/lib/decidim/verifications.rb +1 -1
 - data/lib/tasks/revoke.rake +16 -0
 - metadata +22 -10
 - data/app/jobs/decidim/verifications/csv_census/remove_duplicates_job.rb +0 -30
 - data/lib/decidim/verifications/registry.rb +0 -43
 
| 
         @@ -0,0 +1,47 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            document.addEventListener("decidim:loaded", () => {
         
     | 
| 
      
 2 
     | 
    
         
            +
              document.querySelectorAll('[data-action="csv_census-record"]').forEach((button) => {
         
     | 
| 
      
 3 
     | 
    
         
            +
                const url = button.dataset.censusUrl;
         
     | 
| 
      
 4 
     | 
    
         
            +
                const drawer = window.Decidim.currentDialogs[button.dataset.censusDialog];
         
     | 
| 
      
 5 
     | 
    
         
            +
                const container = drawer.dialog.querySelector("#csv-census-actions");
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                // Handles changes on the form
         
     | 
| 
      
 8 
     | 
    
         
            +
                const activateDrawerForm = () => {
         
     | 
| 
      
 9 
     | 
    
         
            +
                  const saveForm = drawer.dialog.querySelector(".form_census_record");
         
     | 
| 
      
 10 
     | 
    
         
            +
                  // Handles form errors and success
         
     | 
| 
      
 11 
     | 
    
         
            +
                  if (saveForm) {
         
     | 
| 
      
 12 
     | 
    
         
            +
                    saveForm.addEventListener("ajax:success", (event) => {
         
     | 
| 
      
 13 
     | 
    
         
            +
                      const response = event.detail[0];
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                      if (response.status === "ok") {
         
     | 
| 
      
 16 
     | 
    
         
            +
                        window.location.reload();
         
     | 
| 
      
 17 
     | 
    
         
            +
                      } else {
         
     | 
| 
      
 18 
     | 
    
         
            +
                        window.location.href = response.redirect_url;
         
     | 
| 
      
 19 
     | 
    
         
            +
                      }
         
     | 
| 
      
 20 
     | 
    
         
            +
                    });
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                    saveForm.addEventListener("ajax:error", (event) => {
         
     | 
| 
      
 23 
     | 
    
         
            +
                      const response = event.detail[2];
         
     | 
| 
      
 24 
     | 
    
         
            +
                      container.innerHTML = response.responseText;
         
     | 
| 
      
 25 
     | 
    
         
            +
                      activateDrawerForm();
         
     | 
| 
      
 26 
     | 
    
         
            +
                    });
         
     | 
| 
      
 27 
     | 
    
         
            +
                  }
         
     | 
| 
      
 28 
     | 
    
         
            +
                }
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                const fetchUrl = (urlToFetch) => {
         
     | 
| 
      
 31 
     | 
    
         
            +
                  container.classList.add("spinner-container");
         
     | 
| 
      
 32 
     | 
    
         
            +
                  fetch(urlToFetch).then((response) => response.text()).then((html) => {
         
     | 
| 
      
 33 
     | 
    
         
            +
                    container.innerHTML = html;
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                    container.classList.remove("spinner-container");
         
     | 
| 
      
 36 
     | 
    
         
            +
                    // We still need foundation for form validations
         
     | 
| 
      
 37 
     | 
    
         
            +
                    $(container).foundation();
         
     | 
| 
      
 38 
     | 
    
         
            +
                    activateDrawerForm()
         
     | 
| 
      
 39 
     | 
    
         
            +
                  });
         
     | 
| 
      
 40 
     | 
    
         
            +
                };
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                button.addEventListener("click", () => {
         
     | 
| 
      
 43 
     | 
    
         
            +
                  fetchUrl(url);
         
     | 
| 
      
 44 
     | 
    
         
            +
                  drawer.open();
         
     | 
| 
      
 45 
     | 
    
         
            +
                });
         
     | 
| 
      
 46 
     | 
    
         
            +
              })
         
     | 
| 
      
 47 
     | 
    
         
            +
            });
         
     | 
| 
         @@ -0,0 +1,45 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Decidim
         
     | 
| 
      
 4 
     | 
    
         
            +
              module Verifications
         
     | 
| 
      
 5 
     | 
    
         
            +
                module AdminLog
         
     | 
| 
      
 6 
     | 
    
         
            +
                  # This class holds the logic to present a `Decidim::Verifications::CsvDatum
         
     | 
| 
      
 7 
     | 
    
         
            +
                  # for the `AdminLog` log.
         
     | 
| 
      
 8 
     | 
    
         
            +
                  #
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # Usage should be automatic and you should not need to call this class
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # directly, but here is an example:
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #
         
     | 
| 
      
 12 
     | 
    
         
            +
                  #    action_log = Decidim::ActionLog.last
         
     | 
| 
      
 13 
     | 
    
         
            +
                  #    view_helpers # => this comes from the views
         
     | 
| 
      
 14 
     | 
    
         
            +
                  #    CsvDatumPresenter.new(action_log, view_helpers).present
         
     | 
| 
      
 15 
     | 
    
         
            +
                  class CsvDatumPresenter < Decidim::Log::BasePresenter
         
     | 
| 
      
 16 
     | 
    
         
            +
                    def initialize(action_log, view_helpers)
         
     | 
| 
      
 17 
     | 
    
         
            +
                      super
         
     | 
| 
      
 18 
     | 
    
         
            +
                      @resource = action_log.resource
         
     | 
| 
      
 19 
     | 
    
         
            +
                    end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                    private
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                    def action_string
         
     | 
| 
      
 24 
     | 
    
         
            +
                      case action
         
     | 
| 
      
 25 
     | 
    
         
            +
                      when "delete", "create", "update", "import"
         
     | 
| 
      
 26 
     | 
    
         
            +
                        "decidim.verifications.admin_log.csv_datum.#{action}"
         
     | 
| 
      
 27 
     | 
    
         
            +
                      else
         
     | 
| 
      
 28 
     | 
    
         
            +
                        super
         
     | 
| 
      
 29 
     | 
    
         
            +
                      end
         
     | 
| 
      
 30 
     | 
    
         
            +
                    end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                    def i18n_params
         
     | 
| 
      
 33 
     | 
    
         
            +
                      super.merge(
         
     | 
| 
      
 34 
     | 
    
         
            +
                        resource_email: @resource&.email.to_s,
         
     | 
| 
      
 35 
     | 
    
         
            +
                        imported_count: imported_records.count
         
     | 
| 
      
 36 
     | 
    
         
            +
                      )
         
     | 
| 
      
 37 
     | 
    
         
            +
                    end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                    def imported_records
         
     | 
| 
      
 40 
     | 
    
         
            +
                      action_log.extra.dig("extra", "imported_records") || []
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -47,7 +47,7 @@ module Decidim 
     | 
|
| 
       47 
47 
     | 
    
         
             
                # @return [Boolean] A boolean indicating whether the authorization can be
         
     | 
| 
       48 
48 
     | 
    
         
             
                #   transferred.
         
     | 
| 
       49 
49 
     | 
    
         
             
                def transferrable?
         
     | 
| 
       50 
     | 
    
         
            -
                  duplicate.present? && duplicate.user.deleted?
         
     | 
| 
      
 50 
     | 
    
         
            +
                  duplicate.present? && (duplicate.user.deleted? || duplicate.user.ephemeral?)
         
     | 
| 
       51 
51 
     | 
    
         
             
                end
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
53 
     | 
    
         
             
                # Defines whether the identity of an ephemeral user with the same authorization
         
     | 
| 
         @@ -32,7 +32,7 @@ 
     | 
|
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
              <% unless onboarding_manager.ephemeral? %>
         
     | 
| 
       34 
34 
     | 
    
         
             
                <p class="prose prose-a:text-secondary">
         
     | 
| 
       35 
     | 
    
         
            -
                  <%= t("decidim.verifications.authorizations.skip_verification", link: link_to(t("decidim.verifications.authorizations.start_exploring"),  
     | 
| 
      
 35 
     | 
    
         
            +
                  <%= t("decidim.verifications.authorizations.skip_verification", link: link_to(t("decidim.verifications.authorizations.start_exploring"), decidim.root_path).html_safe).html_safe %>.
         
     | 
| 
       36 
36 
     | 
    
         
             
                </p>
         
     | 
| 
       37 
37 
     | 
    
         
             
              <% end %>
         
     | 
| 
       38 
38 
     | 
    
         
             
            <% end %>
         
     | 
| 
         @@ -33,6 +33,6 @@ 
     | 
|
| 
       33 
33 
     | 
    
         
             
                <% end %>
         
     | 
| 
       34 
34 
     | 
    
         
             
              </section>
         
     | 
| 
       35 
35 
     | 
    
         
             
              <p class="prose prose-a:text-secondary">
         
     | 
| 
       36 
     | 
    
         
            -
                <%= t("decidim.verifications.authorizations.skip_verification", link: link_to(t("decidim.verifications.authorizations.start_exploring"),  
     | 
| 
      
 36 
     | 
    
         
            +
                <%= t("decidim.verifications.authorizations.skip_verification", link: link_to(t("decidim.verifications.authorizations.start_exploring"), decidim.root_path).html_safe).html_safe %>.
         
     | 
| 
       37 
37 
     | 
    
         
             
              </p>
         
     | 
| 
       38 
38 
     | 
    
         
             
            <% end %>
         
     | 
| 
         @@ -1,59 +1,81 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <% add_decidim_page_title(t("admin.index.title", scope: "decidim.verifications.csv_census")) %>
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
            <div class=" 
     | 
| 
       4 
     | 
    
         
            -
              < 
     | 
| 
       5 
     | 
    
         
            -
                 
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                     
     | 
| 
       17 
     | 
    
         
            -
                      < 
     | 
| 
       18 
     | 
    
         
            -
                        < 
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                         
     | 
| 
       21 
     | 
    
         
            -
                         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            <div class="card">
         
     | 
| 
      
 4 
     | 
    
         
            +
              <div class="item_show__header item_show__header--with-action-options">
         
     | 
| 
      
 5 
     | 
    
         
            +
                <h1 class="item_show__header-title">
         
     | 
| 
      
 6 
     | 
    
         
            +
                  <%= t("index.title", scope: "decidim.verifications.csv_census.admin") %>
         
     | 
| 
      
 7 
     | 
    
         
            +
                  <%= link_to t("index.import_csv", scope: "decidim.verifications.csv_census.admin"), new_import_census_logs_path, method: :get, class: "button button__sm button__transparent-secondary" %>
         
     | 
| 
      
 8 
     | 
    
         
            +
                  <button type="button" data-action="csv_census-record" data-census-dialog="census_drawer" data-census-url="<%= new_record_census_logs_path %>" class="button button__sm button__secondary">
         
     | 
| 
      
 9 
     | 
    
         
            +
                    <%= t("index.add_new_record_button", scope: "decidim.verifications.csv_census.admin") %>
         
     | 
| 
      
 10 
     | 
    
         
            +
                  </button>
         
     | 
| 
      
 11 
     | 
    
         
            +
                </h1>
         
     | 
| 
      
 12 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 13 
     | 
    
         
            +
              <% if csv_census_data.any? %>
         
     | 
| 
      
 14 
     | 
    
         
            +
                <div class="table-stacked mt-8">
         
     | 
| 
      
 15 
     | 
    
         
            +
                  <table class="table-list">
         
     | 
| 
      
 16 
     | 
    
         
            +
                    <thead>
         
     | 
| 
      
 17 
     | 
    
         
            +
                      <tr>
         
     | 
| 
      
 18 
     | 
    
         
            +
                        <th><%= t("index.fields.email", scope: "decidim.verifications.csv_census.admin") %></th>
         
     | 
| 
      
 19 
     | 
    
         
            +
                        <th><%= t("index.fields.created_at", scope: "decidim.verifications.csv_census.admin") %></th>
         
     | 
| 
      
 20 
     | 
    
         
            +
                        <th><%= t("index.fields.user_authorized", scope: "decidim.verifications.csv_census.admin") %></th>
         
     | 
| 
      
 21 
     | 
    
         
            +
                        <th><%= t("index.fields.actions", scope: "decidim.verifications.csv_census.admin") %></th>
         
     | 
| 
      
 22 
     | 
    
         
            +
                      </tr>
         
     | 
| 
      
 23 
     | 
    
         
            +
                    </thead>
         
     | 
| 
      
 24 
     | 
    
         
            +
                    <tbody>
         
     | 
| 
      
 25 
     | 
    
         
            +
                      <% csv_census_data.each do |data| %>
         
     | 
| 
      
 26 
     | 
    
         
            +
                        <tr>
         
     | 
| 
      
 27 
     | 
    
         
            +
                          <td data-label="<%= t("index.fields.email", scope: "decidim.verifications.csv_census.admin") %>">
         
     | 
| 
      
 28 
     | 
    
         
            +
                            <%= data.email %>
         
     | 
| 
      
 29 
     | 
    
         
            +
                          </td>
         
     | 
| 
      
 30 
     | 
    
         
            +
                          <td data-label="<%= t("index.fields.created_at", scope: "decidim.verifications.csv_census.admin") %>">
         
     | 
| 
      
 31 
     | 
    
         
            +
                            <%= l data.created_at, format: :decidim_short %>
         
     | 
| 
      
 32 
     | 
    
         
            +
                          </td>
         
     | 
| 
      
 33 
     | 
    
         
            +
                          <td data-label="<%= t("index.fields.user_authorized", scope: "decidim.verifications.csv_census.admin") %>" class="custom-text-align">
         
     | 
| 
      
 34 
     | 
    
         
            +
                            <% last_login_info = last_login(data) || { icon: nil, text: t(".no_user"), last_sign_in: nil } %>
         
     | 
| 
      
 35 
     | 
    
         
            +
                            <% if last_login_info[:icon].present? %>
         
     | 
| 
      
 36 
     | 
    
         
            +
                              <%= icon_with_tooltip(last_login_info[:icon], last_login_info[:text]) %>
         
     | 
| 
      
 37 
     | 
    
         
            +
                            <% else %>
         
     | 
| 
      
 38 
     | 
    
         
            +
                              <%= last_login_info[:text] || t(".no_user") %>
         
     | 
| 
      
 39 
     | 
    
         
            +
                            <% end %>
         
     | 
| 
      
 40 
     | 
    
         
            +
                            <%= last_login_info[:last_sign_in] %>
         
     | 
| 
      
 41 
     | 
    
         
            +
                          </td>
         
     | 
| 
      
 42 
     | 
    
         
            +
                          <td data-label="<%= t("index.fields.actions", scope: "decidim.verifications.csv_census.admin") %>" class="table-list__actions">
         
     | 
| 
      
 43 
     | 
    
         
            +
                            <button type="button" data-controller="dropdown" data-target="actions-census-log-<%= data.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: data.id) %>">
         
     | 
| 
      
 44 
     | 
    
         
            +
                              <%= icon "more-fill", class: "text-secondary" %>
         
     | 
| 
      
 45 
     | 
    
         
            +
                            </button>
         
     | 
| 
       31 
46 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                        <pre class="code-block"><%= t("decidim.verifications.csv_census.admin.new.example") %></pre>
         
     | 
| 
       41 
     | 
    
         
            -
                      </div>
         
     | 
| 
      
 47 
     | 
    
         
            +
                            <div class="inline-block relative">
         
     | 
| 
      
 48 
     | 
    
         
            +
                              <ul id="actions-census-log-<%= data.id %>" class="dropdown dropdown__action" aria-hidden="true">
         
     | 
| 
      
 49 
     | 
    
         
            +
                                <li class="dropdown__item">
         
     | 
| 
      
 50 
     | 
    
         
            +
                                  <%= link_to "#", class: "dropdown__button", data: { action: "csv_census-record", census_dialog: "census_drawer", census_url: edit_record_census_log_path(data) } do %>
         
     | 
| 
      
 51 
     | 
    
         
            +
                                    <%= icon "pencil-line" %>
         
     | 
| 
      
 52 
     | 
    
         
            +
                                    <%= t("actions.edit", scope: "decidim.verifications.csv_census.admin") %>
         
     | 
| 
      
 53 
     | 
    
         
            +
                                  <% end %>
         
     | 
| 
      
 54 
     | 
    
         
            +
                                </li>
         
     | 
| 
       42 
55 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                        <%= decidim_form_for @form, url: census_path, multipart: true do |form| %>
         
     | 
| 
       45 
     | 
    
         
            -
                          <%= label_tag :file, t("admin.new.file", scope: "decidim.verifications.csv_census") %>
         
     | 
| 
       46 
     | 
    
         
            -
                          <%= form.file_field :file %>
         
     | 
| 
      
 56 
     | 
    
         
            +
                                <hr>
         
     | 
| 
       47 
57 
     | 
    
         | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
      
 58 
     | 
    
         
            +
                                <li class="dropdown__item">
         
     | 
| 
      
 59 
     | 
    
         
            +
                                  <%= link_to census_log_path(data), method: :delete, data: { confirm: t("actions.confirm_destroy", scope: "decidim.verifications.csv_census.admin") }, class: "dropdown__button" do %>
         
     | 
| 
      
 60 
     | 
    
         
            +
                                    <%= icon "delete-bin-line" %>
         
     | 
| 
      
 61 
     | 
    
         
            +
                                    <%= t("actions.destroy", scope: "decidim.verifications.csv_census.admin") %>
         
     | 
| 
      
 62 
     | 
    
         
            +
                                  <% end %>
         
     | 
| 
      
 63 
     | 
    
         
            +
                                </li>
         
     | 
| 
      
 64 
     | 
    
         
            +
                              </ul>
         
     | 
| 
       51 
65 
     | 
    
         
             
                            </div>
         
     | 
| 
       52 
     | 
    
         
            -
                          </ 
     | 
| 
       53 
     | 
    
         
            -
                         
     | 
| 
       54 
     | 
    
         
            -
                       
     | 
| 
       55 
     | 
    
         
            -
                    </ 
     | 
| 
       56 
     | 
    
         
            -
                  </ 
     | 
| 
      
 66 
     | 
    
         
            +
                          </td>
         
     | 
| 
      
 67 
     | 
    
         
            +
                        </tr>
         
     | 
| 
      
 68 
     | 
    
         
            +
                      <% end %>
         
     | 
| 
      
 69 
     | 
    
         
            +
                    </tbody>
         
     | 
| 
      
 70 
     | 
    
         
            +
                  </table>
         
     | 
| 
       57 
71 
     | 
    
         
             
                </div>
         
     | 
| 
       58 
     | 
    
         
            -
               
     | 
| 
      
 72 
     | 
    
         
            +
              <% else %>
         
     | 
| 
      
 73 
     | 
    
         
            +
                <p><%= t(".empty", import_csv: link_to(t("index.import_csv", scope: "decidim.verifications.csv_census.admin"), new_import_census_logs_path, class: " decoration-solid decoration-secondary font-semibold text-secondary").html_safe).html_safe %></p>
         
     | 
| 
      
 74 
     | 
    
         
            +
              <% end %>
         
     | 
| 
       59 
75 
     | 
    
         
             
            </div>
         
     | 
| 
      
 76 
     | 
    
         
            +
            <%= decidim_paginate csv_census_data %>
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
            <%= render partial: "csv_census_drawer" %>
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
            <%= append_javascript_pack_tag "decidim_verifications" %>
         
     | 
| 
      
 81 
     | 
    
         
            +
            <%= append_stylesheet_pack_tag "decidim_verifications" %>
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <% add_decidim_page_title(t(".title")) %>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <div class="item_show__header">
         
     | 
| 
      
 3 
     | 
    
         
            +
              <h2 class="item_show__header-title">
         
     | 
| 
      
 4 
     | 
    
         
            +
                <%= t(".title") %>
         
     | 
| 
      
 5 
     | 
    
         
            +
              </h2>
         
     | 
| 
      
 6 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 7 
     | 
    
         
            +
            <div class="card-section">
         
     | 
| 
      
 8 
     | 
    
         
            +
              <div class="row column  font-semibold pb-4"><%= t(".upload_new_census") %></div>
         
     | 
| 
      
 9 
     | 
    
         
            +
              <div class="row column">
         
     | 
| 
      
 10 
     | 
    
         
            +
                <p><%= t(".info") %></p>
         
     | 
| 
      
 11 
     | 
    
         
            +
                <pre class="code-block"><%= t(".example") %></pre>
         
     | 
| 
      
 12 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              <div class="row column">
         
     | 
| 
      
 15 
     | 
    
         
            +
                <%= decidim_form_for @form, url: create_import_census_logs_path, multipart: true do |form| %>
         
     | 
| 
      
 16 
     | 
    
         
            +
                  <div class="font-semibold">
         
     | 
| 
      
 17 
     | 
    
         
            +
                    <%= form.upload :file, help_i18n_scope: "decidim.admin.forms.file_help.import_csv", button_class: "button button__sm button__transparent-secondary" %>
         
     | 
| 
      
 18 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  <div class="item__edit-sticky">
         
     | 
| 
      
 21 
     | 
    
         
            +
                    <div class="item__edit-sticky-container">
         
     | 
| 
      
 22 
     | 
    
         
            +
                      <%= submit_tag t("census.new_import.submit", scope: "decidim.verifications.csv_census.admin"), class: "button button__sm button__secondary" %>
         
     | 
| 
      
 23 
     | 
    
         
            +
                    </div>
         
     | 
| 
      
 24 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 25 
     | 
    
         
            +
                <% end %>
         
     | 
| 
      
 26 
     | 
    
         
            +
              </div>
         
     | 
| 
      
 27 
     | 
    
         
            +
            </div>
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <% add_decidim_page_title(t(".title")) %>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <div class="item_show__header">
         
     | 
| 
      
 3 
     | 
    
         
            +
              <h1 class="item_show__header-title">
         
     | 
| 
      
 4 
     | 
    
         
            +
                <%= t(".title") %>
         
     | 
| 
      
 5 
     | 
    
         
            +
              </h1>
         
     | 
| 
      
 6 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 7 
     | 
    
         
            +
            <div>
         
     | 
| 
      
 8 
     | 
    
         
            +
              <%= decidim_form_for(@form, url: update_record_census_log_path, remote: true, html: { class: "form-defaults form edit_record form_census_record" }) do |f| %>
         
     | 
| 
      
 9 
     | 
    
         
            +
                <%= render partial: "form", object: f %>
         
     | 
| 
      
 10 
     | 
    
         
            +
                <div class="flex items-center gap-x-4">
         
     | 
| 
      
 11 
     | 
    
         
            +
                  <%= f.submit t(".save"), class: "button button__sm button__secondary absolute top-5 right-6" %>
         
     | 
| 
      
 12 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 13 
     | 
    
         
            +
              <% end %>
         
     | 
| 
      
 14 
     | 
    
         
            +
            </div>
         
     | 
| 
         @@ -0,0 +1,14 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            <% add_decidim_page_title(t(".title")) %>
         
     | 
| 
      
 2 
     | 
    
         
            +
            <div class="item_show__header">
         
     | 
| 
      
 3 
     | 
    
         
            +
              <h1 class="item_show__header-title">
         
     | 
| 
      
 4 
     | 
    
         
            +
                <%= t(".title") %>
         
     | 
| 
      
 5 
     | 
    
         
            +
              </h1>
         
     | 
| 
      
 6 
     | 
    
         
            +
            </div>
         
     | 
| 
      
 7 
     | 
    
         
            +
            <div>
         
     | 
| 
      
 8 
     | 
    
         
            +
              <%= decidim_form_for(@form, url: create_record_census_logs_path, method: :post, remote: true, html: { class: "form-defaults form new_record form_census_record" }) do |f| %>
         
     | 
| 
      
 9 
     | 
    
         
            +
                <%= render partial: "form", object: f %>
         
     | 
| 
      
 10 
     | 
    
         
            +
                <div class="flex items-center gap-x-4">
         
     | 
| 
      
 11 
     | 
    
         
            +
                  <%= f.submit t(".save"), class: "button button__sm button__secondary absolute top-5 right-6" %>
         
     | 
| 
      
 12 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 13 
     | 
    
         
            +
              <% end %>
         
     | 
| 
      
 14 
     | 
    
         
            +
            </div>
         
     | 
    
        data/app/views/decidim/verifications/postal_letter/admin/pending_authorizations/index.html.erb
    CHANGED
    
    | 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            <% add_decidim_page_title(t(".title")) %>
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            <div class="card">
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
5 
     | 
    
         
             
              <div class="item_show__header">
         
     | 
| 
         @@ -7,7 +8,7 @@ 
     | 
|
| 
       7 
8 
     | 
    
         
             
                </h1>
         
     | 
| 
       8 
9 
     | 
    
         
             
              </div>
         
     | 
| 
       9 
10 
     | 
    
         | 
| 
       10 
     | 
    
         
            -
              <div class="table- 
     | 
| 
      
 11 
     | 
    
         
            +
              <div class="table-stacked">
         
     | 
| 
       11 
12 
     | 
    
         
             
                <table class="table-list">
         
     | 
| 
       12 
13 
     | 
    
         
             
                  <thead>
         
     | 
| 
       13 
14 
     | 
    
         
             
                    <tr>
         
     | 
| 
         @@ -15,35 +16,50 @@ 
     | 
|
| 
       15 
16 
     | 
    
         
             
                      <th><%= t(".address") %></th>
         
     | 
| 
       16 
17 
     | 
    
         
             
                      <th><%= t(".verification_code") %></th>
         
     | 
| 
       17 
18 
     | 
    
         
             
                      <th><%= t(".letter_sent_at") %></th>
         
     | 
| 
       18 
     | 
    
         
            -
                      <th 
     | 
| 
      
 19 
     | 
    
         
            +
                      <th><%= t("decidim.admin.actions.actions") %></th>
         
     | 
| 
       19 
20 
     | 
    
         
             
                    </tr>
         
     | 
| 
       20 
21 
     | 
    
         
             
                  </thead>
         
     | 
| 
       21 
22 
     | 
    
         
             
                  <tbody>
         
     | 
| 
       22 
23 
     | 
    
         
             
                    <% @pending_authorizations.each do |authorization| %>
         
     | 
| 
       23 
24 
     | 
    
         
             
                      <tr>
         
     | 
| 
       24 
     | 
    
         
            -
                        <td>
         
     | 
| 
      
 25 
     | 
    
         
            +
                        <td data-label="<%= t(".username") %>">
         
     | 
| 
       25 
26 
     | 
    
         
             
                          <%= authorization.user.name %>
         
     | 
| 
       26 
27 
     | 
    
         
             
                        </td>
         
     | 
| 
       27 
     | 
    
         
            -
                        <td>
         
     | 
| 
      
 28 
     | 
    
         
            +
                        <td data-label="<%= t(".address") %>">
         
     | 
| 
       28 
29 
     | 
    
         
             
                          <%= authorization.verification_address %>
         
     | 
| 
       29 
30 
     | 
    
         
             
                        </td>
         
     | 
| 
       30 
     | 
    
         
            -
                        <td>
         
     | 
| 
      
 31 
     | 
    
         
            +
                        <td data-label="<%= t(".verification_code") %>">
         
     | 
| 
       31 
32 
     | 
    
         
             
                          <%= authorization.verification_code %>
         
     | 
| 
       32 
33 
     | 
    
         
             
                        </td>
         
     | 
| 
       33 
     | 
    
         
            -
                        <td>
         
     | 
| 
      
 34 
     | 
    
         
            +
                        <td data-label="<%= t(".letter_sent_at") %>">
         
     | 
| 
       34 
35 
     | 
    
         
             
                          <%= authorization.letter_sent_at %>
         
     | 
| 
       35 
36 
     | 
    
         
             
                        </td>
         
     | 
| 
       36 
     | 
    
         
            -
                        <td>
         
     | 
| 
       37 
     | 
    
         
            -
                           
     | 
| 
       38 
     | 
    
         
            -
                            <%= icon " 
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
      
 37 
     | 
    
         
            +
                        <td class="table-list__actions" data-label="<%= t("decidim.admin.actions.actions") %>">
         
     | 
| 
      
 38 
     | 
    
         
            +
                          <button type="button" data-controller="dropdown" data-target="actions-authorization-<%= authorization.id %>" aria-label="<%= t("decidim.admin.actions.actions_label", resource: authorization.user.name) %>">
         
     | 
| 
      
 39 
     | 
    
         
            +
                            <%= icon "more-fill", class: "text-secondary" %>
         
     | 
| 
      
 40 
     | 
    
         
            +
                          </button>
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                          <div class="inline-block relative">
         
     | 
| 
      
 43 
     | 
    
         
            +
                            <ul id="actions-authorization-<%= authorization.id %>" class="dropdown dropdown__action" aria-hidden="true">
         
     | 
| 
      
 44 
     | 
    
         
            +
                              <li class="dropdown__item">
         
     | 
| 
      
 45 
     | 
    
         
            +
                                <% if authorization.letter_sent? %>
         
     | 
| 
      
 46 
     | 
    
         
            +
                                  <div class="dropdown__button-disabled">
         
     | 
| 
      
 47 
     | 
    
         
            +
                                    <%= with_tooltip t(".already_sent") do %>
         
     | 
| 
      
 48 
     | 
    
         
            +
                                      <%= icon "checkbox-circle-line", class: "text-gray" %>
         
     | 
| 
      
 49 
     | 
    
         
            +
                                      <span>
         
     | 
| 
      
 50 
     | 
    
         
            +
                                        <%= t(".mark_as_sent") %>
         
     | 
| 
      
 51 
     | 
    
         
            +
                                      </span>
         
     | 
| 
      
 52 
     | 
    
         
            +
                                    <% end %>
         
     | 
| 
      
 53 
     | 
    
         
            +
                                  </div>
         
     | 
| 
      
 54 
     | 
    
         
            +
                                <% else %>
         
     | 
| 
      
 55 
     | 
    
         
            +
                                  <%= link_to pending_authorization_postage_path(authorization.id), method: :post, class: "dropdown__button" do %>
         
     | 
| 
      
 56 
     | 
    
         
            +
                                    <%= icon "checkbox-circle-line" %>
         
     | 
| 
      
 57 
     | 
    
         
            +
                                    <%= t(".mark_as_sent") %>
         
     | 
| 
      
 58 
     | 
    
         
            +
                                  <% end %>
         
     | 
| 
      
 59 
     | 
    
         
            +
                                <% end %>
         
     | 
| 
      
 60 
     | 
    
         
            +
                              </li>
         
     | 
| 
      
 61 
     | 
    
         
            +
                            </ul>
         
     | 
| 
      
 62 
     | 
    
         
            +
                          </div>
         
     | 
| 
       47 
63 
     | 
    
         
             
                        </td>
         
     | 
| 
       48 
64 
     | 
    
         
             
                      </tr>
         
     | 
| 
       49 
65 
     | 
    
         
             
                    <% end %>
         
     | 
    
        data/config/assets.rb
    CHANGED
    
    | 
         @@ -2,7 +2,7 @@ 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            base_path = File.expand_path("..", __dir__)
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            Decidim:: 
     | 
| 
       6 
     | 
    
         
            -
            Decidim:: 
     | 
| 
      
 5 
     | 
    
         
            +
            Decidim::Shakapacker.register_path("#{base_path}/app/packs")
         
     | 
| 
      
 6 
     | 
    
         
            +
            Decidim::Shakapacker.register_entrypoints(
         
     | 
| 
       7 
7 
     | 
    
         
             
              decidim_verifications: "#{base_path}/app/packs/entrypoints/decidim_verifications.js"
         
     | 
| 
       8 
8 
     | 
    
         
             
            )
         
     | 
    
        data/config/locales/ar.yml
    CHANGED
    
    | 
         @@ -65,15 +65,10 @@ ar: 
     | 
|
| 
       65 
65 
     | 
    
         
             
                    start_exploring: البدء في استكشاف
         
     | 
| 
       66 
66 
     | 
    
         
             
                  csv_census:
         
     | 
| 
       67 
67 
     | 
    
         
             
                    admin:
         
     | 
| 
       68 
     | 
    
         
            -
                      destroy:
         
     | 
| 
       69 
     | 
    
         
            -
                        title: احذف جميع بيانات التعداد
         
     | 
| 
       70 
68 
     | 
    
         
             
                      index:
         
     | 
| 
       71 
     | 
    
         
            -
                        empty: لا توجد بيانات التعداد. استخدم النموذج أدناه لاستيراده باستخدام ملف CSV.
         
     | 
| 
       72 
69 
     | 
    
         
             
                        title: بيانات التعداد الحالية
         
     | 
| 
       73 
70 
     | 
    
         
             
                      instructions:
         
     | 
| 
       74 
71 
     | 
    
         
             
                        body: للقيام بذلك ، يجب عليك إدخال إدارة النظام وإضافة تصاريح csv_census إلى المؤسسة
         
     | 
| 
       75 
     | 
    
         
            -
                      new:
         
     | 
| 
       76 
     | 
    
         
            -
                        file: ".csv ملف مع بيانات رسائل البريد الإلكتروني"
         
     | 
| 
       77 
72 
     | 
    
         
             
                    authorizations:
         
     | 
| 
       78 
73 
     | 
    
         
             
                      new:
         
     | 
| 
       79 
74 
     | 
    
         
             
                        error: لم نتمكن من التحقق من حسابك أو لم تكن في تعداد المنظمة.
         
     | 
    
        data/config/locales/bg.yml
    CHANGED
    
    | 
         @@ -144,23 +144,11 @@ bg: 
     | 
|
| 
       144 
144 
     | 
    
         
             
                    start_exploring: започнете да разглеждате
         
     | 
| 
       145 
145 
     | 
    
         
             
                  csv_census:
         
     | 
| 
       146 
146 
     | 
    
         
             
                    admin:
         
     | 
| 
       147 
     | 
    
         
            -
                      census:
         
     | 
| 
       148 
     | 
    
         
            -
                        create:
         
     | 
| 
       149 
     | 
    
         
            -
                          success: Успешно бяха импортирани %{count} елемента. (%{errors} грешки).
         
     | 
| 
       150 
     | 
    
         
            -
                        destroy_all:
         
     | 
| 
       151 
     | 
    
         
            -
                          success: Всички данни от преброяването бяха изтрити.
         
     | 
| 
       152 
     | 
    
         
            -
                      destroy:
         
     | 
| 
       153 
     | 
    
         
            -
                        confirm: Изтриване на всички данни от преброяването не може да бъде отменено. Наистина ли искате да продължите?
         
     | 
| 
       154 
     | 
    
         
            -
                        title: Изтриване на всички данни от преброяването
         
     | 
| 
       155 
147 
     | 
    
         
             
                      index:
         
     | 
| 
       156 
     | 
    
         
            -
                        data: Заредени са общо %{count} записа. Датата на последното качване е на %{due_date}.
         
     | 
| 
       157 
     | 
    
         
            -
                        empty: Няма данни от преброяването. Използвайте формуляра по-долу, за да ги импортирате чрез файл във формат CSV.
         
     | 
| 
       158 
148 
     | 
    
         
             
                        title: Текущи данни от преброяването
         
     | 
| 
       159 
149 
     | 
    
         
             
                      instructions:
         
     | 
| 
       160 
150 
     | 
    
         
             
                        body: За тази цел трябва да влезете в администрацията на системата и да добавите оторизация за csv_census в организацията
         
     | 
| 
       161 
151 
     | 
    
         
             
                        title: Трябва да активирате преброяването чрез файл във формат CSV за тази организация
         
     | 
| 
       162 
     | 
    
         
            -
                      new:
         
     | 
| 
       163 
     | 
    
         
            -
                        file: "файл във формат .csv с данни за електронните пощи"
         
     | 
| 
       164 
152 
     | 
    
         
             
                    authorizations:
         
     | 
| 
       165 
153 
     | 
    
         
             
                      new:
         
     | 
| 
       166 
154 
     | 
    
         
             
                        error: Не можахме да потвърдим вашия акаунт или не сте в преброяването на организацията.
         
     | 
    
        data/config/locales/ca-IT.yml
    CHANGED
    
    | 
         @@ -4,6 +4,8 @@ ca-IT: 
     | 
|
| 
       4 
4 
     | 
    
         
             
                attributes:
         
     | 
| 
       5 
5 
     | 
    
         
             
                  authorization:
         
     | 
| 
       6 
6 
     | 
    
         
             
                    verification_attachment: Arxiu adjunt de la verificació
         
     | 
| 
      
 7 
     | 
    
         
            +
                  census_data:
         
     | 
| 
      
 8 
     | 
    
         
            +
                    file: Fitxer
         
     | 
| 
       7 
9 
     | 
    
         
             
                  config:
         
     | 
| 
       8 
10 
     | 
    
         
             
                    available_methods: Mètodes disponibles
         
     | 
| 
       9 
11 
     | 
    
         
             
                    offline: Sense connexió
         
     | 
| 
         @@ -121,6 +123,12 @@ ca-IT: 
     | 
|
| 
       121 
123 
     | 
    
         
             
                      email_subject: Error en intentar verificar-se contra una altra participant
         
     | 
| 
       122 
124 
     | 
    
         
             
                      notification_title: La participant <a href="%{resource_path}">%{resource_title}</a> ha intentat verificar-se amb les dades d'una altra participant (<a href="%{managed_user_path}">%{managed_user_name}</a>).
         
     | 
| 
       123 
125 
     | 
    
         
             
                verifications:
         
     | 
| 
      
 126 
     | 
    
         
            +
                  admin_log:
         
     | 
| 
      
 127 
     | 
    
         
            +
                    csv_datum:
         
     | 
| 
      
 128 
     | 
    
         
            +
                      create: "%{user_name} ha creat un nou registre de dades censals amb correu electrònic: %{resource_email}"
         
     | 
| 
      
 129 
     | 
    
         
            +
                      delete: "%{user_name} ha eliminado un nou registre de dades censals amb correu electrònic: %{resource_email}"
         
     | 
| 
      
 130 
     | 
    
         
            +
                      import: "%{user_name} ha importat: %{imported_count} registre(s) censal(s)"
         
     | 
| 
      
 131 
     | 
    
         
            +
                      update: "%{user_name} ha actualitzat el registre de dades censals amb correu electrònic: %{resource_email}"
         
     | 
| 
       124 
132 
     | 
    
         
             
                  authorizations:
         
     | 
| 
       125 
133 
     | 
    
         
             
                    authorization_metadata:
         
     | 
| 
       126 
134 
     | 
    
         
             
                      info: 'Aquestes són les dades de la verificació actual:'
         
     | 
| 
         @@ -161,30 +169,62 @@ ca-IT: 
     | 
|
| 
       161 
169 
     | 
    
         
             
                    start_exploring: comença a explorar
         
     | 
| 
       162 
170 
     | 
    
         
             
                  csv_census:
         
     | 
| 
       163 
171 
     | 
    
         
             
                    admin:
         
     | 
| 
      
 172 
     | 
    
         
            +
                      actions:
         
     | 
| 
      
 173 
     | 
    
         
            +
                        confirm_destroy: Segur que vols esborrar aquest registre de dades censals?
         
     | 
| 
      
 174 
     | 
    
         
            +
                        destroy: Destruir
         
     | 
| 
      
 175 
     | 
    
         
            +
                        edit: Editar
         
     | 
| 
       164 
176 
     | 
    
         
             
                      census:
         
     | 
| 
       165 
     | 
    
         
            -
                         
     | 
| 
      
 177 
     | 
    
         
            +
                        create_import:
         
     | 
| 
       166 
178 
     | 
    
         
             
                          error: S'ha produït un error en importar del cens.
         
     | 
| 
       167 
     | 
    
         
            -
                           
     | 
| 
       168 
     | 
    
         
            -
             
     | 
| 
       169 
     | 
    
         
            -
             
     | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
                         
     | 
| 
       172 
     | 
    
         
            -
             
     | 
| 
      
 179 
     | 
    
         
            +
                          no_user: No s'ha trobat la usuària
         
     | 
| 
      
 180 
     | 
    
         
            +
                          success: S'han importat amb èxit %{count} elements. S'estan processant les dades. Actualitza la pàgina en uns minuts per veure els canvis.
         
     | 
| 
      
 181 
     | 
    
         
            +
                        destroy:
         
     | 
| 
      
 182 
     | 
    
         
            +
                          success: S'ha eliminat el registre de dades censals.
         
     | 
| 
      
 183 
     | 
    
         
            +
                        index:
         
     | 
| 
      
 184 
     | 
    
         
            +
                          empty: No hi ha dades del cens. Utilitza %{import_csv} per importar-lo mitjançant un fitxer CSV.
         
     | 
| 
      
 185 
     | 
    
         
            +
                          no_sign_in: Mai no ha iniciat sessió
         
     | 
| 
      
 186 
     | 
    
         
            +
                          no_user: No s'ha trobat cap usuària
         
     | 
| 
      
 187 
     | 
    
         
            +
                        last_login:
         
     | 
| 
      
 188 
     | 
    
         
            +
                          no_sign_in: Mai no ha iniciat sessió
         
     | 
| 
      
 189 
     | 
    
         
            +
                          no_user: Cap usuària
         
     | 
| 
      
 190 
     | 
    
         
            +
                        new_import:
         
     | 
| 
      
 191 
     | 
    
         
            +
                          errors:
         
     | 
| 
      
 192 
     | 
    
         
            +
                            email_exists: L'adreça de correu electrònic %{email} ja existeix a l'organització %{organization}.
         
     | 
| 
      
 193 
     | 
    
         
            +
                          example: |
         
     | 
| 
      
 194 
     | 
    
         
            +
                            john.doe@example.org
         
     | 
| 
      
 195 
     | 
    
         
            +
                            jane.doe@example.org
         
     | 
| 
      
 196 
     | 
    
         
            +
                          info: 'Ha de ser un fitxer en format CSV amb una sola columna amb l''adreça de correu electrònic:'
         
     | 
| 
      
 197 
     | 
    
         
            +
                          submit: Puja arxiu
         
     | 
| 
      
 198 
     | 
    
         
            +
                          title: Importar dades censals
         
     | 
| 
      
 199 
     | 
    
         
            +
                          upload_new_census: Puja un nou cens
         
     | 
| 
      
 200 
     | 
    
         
            +
                      census_records:
         
     | 
| 
      
 201 
     | 
    
         
            +
                        create_record:
         
     | 
| 
      
 202 
     | 
    
         
            +
                          success: Registre de dades censals afegides amb èxit. S'estan processant les dades. Actualitza la pàgina, en uns minuts, per veure els canvis.
         
     | 
| 
      
 203 
     | 
    
         
            +
                        edit_record:
         
     | 
| 
      
 204 
     | 
    
         
            +
                          save: Desar
         
     | 
| 
      
 205 
     | 
    
         
            +
                          title: Editar el registre censal
         
     | 
| 
      
 206 
     | 
    
         
            +
                        form:
         
     | 
| 
      
 207 
     | 
    
         
            +
                          email: Correu electrònic
         
     | 
| 
      
 208 
     | 
    
         
            +
                        new_record:
         
     | 
| 
      
 209 
     | 
    
         
            +
                          save: Desar
         
     | 
| 
      
 210 
     | 
    
         
            +
                          title: Afegir un nou registre censal
         
     | 
| 
      
 211 
     | 
    
         
            +
                        update_record:
         
     | 
| 
      
 212 
     | 
    
         
            +
                          invalid: Hi ha hagut un problema en actualitzar el registre de dades del cens.
         
     | 
| 
      
 213 
     | 
    
         
            +
                          success: S'ha actualitzat correctament el registre de dades censals.
         
     | 
| 
       173 
214 
     | 
    
         
             
                      index:
         
     | 
| 
       174 
     | 
    
         
            -
                         
     | 
| 
       175 
     | 
    
         
            -
                         
     | 
| 
      
 215 
     | 
    
         
            +
                        add_new_record_button: Afegir nou registre
         
     | 
| 
      
 216 
     | 
    
         
            +
                        authorized: Usuària actualitzada
         
     | 
| 
      
 217 
     | 
    
         
            +
                        fields:
         
     | 
| 
      
 218 
     | 
    
         
            +
                          actions: Accions
         
     | 
| 
      
 219 
     | 
    
         
            +
                          created_at: Creat el
         
     | 
| 
      
 220 
     | 
    
         
            +
                          email: Correu electrònic
         
     | 
| 
      
 221 
     | 
    
         
            +
                          user_authorized: Usuària autoritzada?
         
     | 
| 
      
 222 
     | 
    
         
            +
                        import_csv: Importar CSV
         
     | 
| 
      
 223 
     | 
    
         
            +
                        no_authorized: Usuària no actualitzada
         
     | 
| 
       176 
224 
     | 
    
         
             
                        title: Dades censals actuals
         
     | 
| 
       177 
225 
     | 
    
         
             
                      instructions:
         
     | 
| 
       178 
226 
     | 
    
         
             
                        body: Per fer-ho, has d'entrar al panell d'administració i afegir les autoritzacions de csv_census a l'organització
         
     | 
| 
       179 
227 
     | 
    
         
             
                        title: Necessites activar el cens csv d'aquesta organització
         
     | 
| 
       180 
     | 
    
         
            -
                      new:
         
     | 
| 
       181 
     | 
    
         
            -
                        example: |
         
     | 
| 
       182 
     | 
    
         
            -
                          john.doe@example.org
         
     | 
| 
       183 
     | 
    
         
            -
                          jane.doe@example.org
         
     | 
| 
       184 
     | 
    
         
            -
                        file: "fitxer .csv amb dades de correus electrònics"
         
     | 
| 
       185 
     | 
    
         
            -
                        info: 'Ha de ser un fitxer en format CSV amb una sola columna amb l''adreça de correu electrònic:'
         
     | 
| 
       186 
     | 
    
         
            -
                        submit: Puja arxiu
         
     | 
| 
       187 
     | 
    
         
            -
                        title: Puja un nou cens
         
     | 
| 
       188 
228 
     | 
    
         
             
                    authorizations:
         
     | 
| 
       189 
229 
     | 
    
         
             
                      new:
         
     | 
| 
       190 
230 
     | 
    
         
             
                        error: No hem pogut verificar el teu compte o no estàs al cens de l'organització.
         
     | 
| 
         @@ -197,6 +237,10 @@ ca-IT: 
     | 
|
| 
       197 
237 
     | 
    
         
             
                      user_postal_codes:
         
     | 
| 
       198 
238 
     | 
    
         
             
                        one: La participació està restringida a participants amb el codi postal %{postal_codes}, i el teu codi postal és %{user_postal_code}.
         
     | 
| 
       199 
239 
     | 
    
         
             
                        other: 'La participació està restringida a participants amb qualsevol dels codis postals següents: %{postal_codes}. El teu codi postal és %{user_postal_code}.'
         
     | 
| 
      
 240 
     | 
    
         
            +
                  errors:
         
     | 
| 
      
 241 
     | 
    
         
            +
                    invalid_emails: 'Les adreces de correu electrònic següents no són vàlides: %{invalid_emails}.'
         
     | 
| 
      
 242 
     | 
    
         
            +
                    no_emails: El fitxer ha de contenir adreces de correu electrònic
         
     | 
| 
      
 243 
     | 
    
         
            +
                    wrong_number_columns: "S'esperava una columna %{expected}, però es van trobar %{actual}."
         
     | 
| 
       200 
244 
     | 
    
         
             
                  id_documents:
         
     | 
| 
       201 
245 
     | 
    
         
             
                    admin:
         
     | 
| 
       202 
246 
     | 
    
         
             
                      config:
         
     | 
| 
         @@ -261,6 +305,7 @@ ca-IT: 
     | 
|
| 
       261 
305 
     | 
    
         
             
                      pending_authorizations:
         
     | 
| 
       262 
306 
     | 
    
         
             
                        index:
         
     | 
| 
       263 
307 
     | 
    
         
             
                          address: Adreça
         
     | 
| 
      
 308 
     | 
    
         
            +
                          already_sent: La carta postal ja s'ha enviat i no es pot tornar a marcar com a enviada.
         
     | 
| 
       264 
309 
     | 
    
         
             
                          letter_sent_at: Carta enviada el
         
     | 
| 
       265 
310 
     | 
    
         
             
                          mark_as_sent: Marca com a enviada
         
     | 
| 
       266 
311 
     | 
    
         
             
                          not_yet_sent: Encara no s'ha enviat
         
     |