Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8ababb1d7a | |||
| 966b68e876 | |||
| eea06a5633 | |||
| 808a6ba663 | |||
| b515afbe5f | |||
| d94197e690 | |||
| 61bc9ca7bb | |||
| d381a8e56a | |||
| 721ef83bca |
@ -22,6 +22,7 @@ MAIL_LINK_HOST=localhost:3000
|
|||||||
MAIL_LINK_PROTO=http
|
MAIL_LINK_PROTO=http
|
||||||
|
|
||||||
# Email provider
|
# Email provider
|
||||||
|
MAILER_SENDER=noreply@timeoverflow.org
|
||||||
SMTP_PASSWORD=XXXXXXXX
|
SMTP_PASSWORD=XXXXXXXX
|
||||||
SMTP_DOMAIN=www.timeoverflow.org
|
SMTP_DOMAIN=www.timeoverflow.org
|
||||||
SMTP_USER_NAME=my_username@timeoverflow.org
|
SMTP_USER_NAME=my_username@timeoverflow.org
|
||||||
|
|||||||
2
Gemfile
2
Gemfile
@ -22,7 +22,7 @@ gem 'prawn-table', '~> 0.2.2'
|
|||||||
gem 'pg_search', '~> 2.3.5'
|
gem 'pg_search', '~> 2.3.5'
|
||||||
gem 'sidekiq', '~> 6.5'
|
gem 'sidekiq', '~> 6.5'
|
||||||
gem 'sidekiq-cron', '~> 1.12.0'
|
gem 'sidekiq-cron', '~> 1.12.0'
|
||||||
gem 'aws-sdk-s3', '~> 1.94', require: false
|
gem 'aws-sdk-s3', '~> 1.208', require: false
|
||||||
gem 'image_processing', '~> 1.12'
|
gem 'image_processing', '~> 1.12'
|
||||||
gem 'active_storage_validations', '~> 1.1.3'
|
gem 'active_storage_validations', '~> 1.1.3'
|
||||||
|
|
||||||
|
|||||||
25
Gemfile.lock
25
Gemfile.lock
@ -95,21 +95,24 @@ GEM
|
|||||||
ast (2.4.3)
|
ast (2.4.3)
|
||||||
autoprefixer-rails (10.4.19.0)
|
autoprefixer-rails (10.4.19.0)
|
||||||
execjs (~> 2)
|
execjs (~> 2)
|
||||||
aws-eventstream (1.3.0)
|
aws-eventstream (1.4.0)
|
||||||
aws-partitions (1.1029.0)
|
aws-partitions (1.1196.0)
|
||||||
aws-sdk-core (3.214.0)
|
aws-sdk-core (3.240.0)
|
||||||
aws-eventstream (~> 1, >= 1.3.0)
|
aws-eventstream (~> 1, >= 1.3.0)
|
||||||
aws-partitions (~> 1, >= 1.992.0)
|
aws-partitions (~> 1, >= 1.992.0)
|
||||||
aws-sigv4 (~> 1.9)
|
aws-sigv4 (~> 1.9)
|
||||||
|
base64
|
||||||
|
bigdecimal
|
||||||
jmespath (~> 1, >= 1.6.1)
|
jmespath (~> 1, >= 1.6.1)
|
||||||
aws-sdk-kms (1.96.0)
|
logger
|
||||||
aws-sdk-core (~> 3, >= 3.210.0)
|
aws-sdk-kms (1.118.0)
|
||||||
|
aws-sdk-core (~> 3, >= 3.239.1)
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
aws-sdk-s3 (1.176.1)
|
aws-sdk-s3 (1.208.0)
|
||||||
aws-sdk-core (~> 3, >= 3.210.0)
|
aws-sdk-core (~> 3, >= 3.234.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
aws-sigv4 (1.10.1)
|
aws-sigv4 (1.12.1)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
base64 (0.3.0)
|
base64 (0.3.0)
|
||||||
bcrypt (3.1.20)
|
bcrypt (3.1.20)
|
||||||
@ -283,7 +286,7 @@ GEM
|
|||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
raabro (1.4.0)
|
raabro (1.4.0)
|
||||||
racc (1.8.1)
|
racc (1.8.1)
|
||||||
rack (2.2.14)
|
rack (2.2.20)
|
||||||
rack-session (1.0.2)
|
rack-session (1.0.2)
|
||||||
rack (< 3)
|
rack (< 3)
|
||||||
rack-test (2.2.0)
|
rack-test (2.2.0)
|
||||||
@ -343,7 +346,7 @@ GEM
|
|||||||
responders (3.1.1)
|
responders (3.1.1)
|
||||||
actionpack (>= 5.2)
|
actionpack (>= 5.2)
|
||||||
railties (>= 5.2)
|
railties (>= 5.2)
|
||||||
rexml (3.4.1)
|
rexml (3.4.2)
|
||||||
rspec-core (3.13.2)
|
rspec-core (3.13.2)
|
||||||
rspec-support (~> 3.13.0)
|
rspec-support (~> 3.13.0)
|
||||||
rspec-expectations (3.13.3)
|
rspec-expectations (3.13.3)
|
||||||
@ -478,7 +481,7 @@ PLATFORMS
|
|||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
active_storage_validations (~> 1.1.3)
|
active_storage_validations (~> 1.1.3)
|
||||||
activeadmin (~> 3.2)
|
activeadmin (~> 3.2)
|
||||||
aws-sdk-s3 (~> 1.94)
|
aws-sdk-s3 (~> 1.208)
|
||||||
bootsnap (~> 1.12)
|
bootsnap (~> 1.12)
|
||||||
bootstrap (~> 5.3.3)
|
bootstrap (~> 5.3.3)
|
||||||
byebug (~> 11.0)
|
byebug (~> 11.0)
|
||||||
|
|||||||
@ -72,6 +72,8 @@ In order to configure the application you can use the following ENV variables:
|
|||||||
| `SECRET_KEY_BASE` | Secret key for the application, generate a new one with the command `rails secret` | |
|
| `SECRET_KEY_BASE` | Secret key for the application, generate a new one with the command `rails secret` | |
|
||||||
| `DATABASE_URL` | Database URL, the format is `postgresql://user:password@host:port/database` | |
|
| `DATABASE_URL` | Database URL, the format is `postgresql://user:password@host:port/database` | |
|
||||||
| `RAILS_SERVE_STATIC_FILES` | Tell the application to serve static files (you might want to turn this off if you are using an external web server to serve files from the `public` folder) | `true` |
|
| `RAILS_SERVE_STATIC_FILES` | Tell the application to serve static files (you might want to turn this off if you are using an external web server to serve files from the `public` folder) | `true` |
|
||||||
|
| `RAILS_ASSET_HOST` | CDN or external host to serve assets from (ie: `cdn.mydomain.tld`) | |
|
||||||
|
| `ASSETS_PRECOMPILE` | Set to `true` to enable asset precompilation with compression during startup | |
|
||||||
| `RAILS_LOG_TO_STDOUT` | Tell the application to log to STDOUT (useful for Docker) | `true` |
|
| `RAILS_LOG_TO_STDOUT` | Tell the application to log to STDOUT (useful for Docker) | `true` |
|
||||||
| `RAILS_LOG_LEVEL` | Log level for the application (use `debug` for maximum information) | `info` |
|
| `RAILS_LOG_LEVEL` | Log level for the application (use `debug` for maximum information) | `info` |
|
||||||
| `RAILS_MAX_THREADS` | Maximum number of threads to use in the application (use `1` if multithreading is not desired) | `5` |
|
| `RAILS_MAX_THREADS` | Maximum number of threads to use in the application (use `1` if multithreading is not desired) | `5` |
|
||||||
@ -83,7 +85,8 @@ In order to configure the application you can use the following ENV variables:
|
|||||||
| `STORAGE_PROVIDER` | Storage provider for the application (currently the application supports `local` and `amazon`) | `amazon` |
|
| `STORAGE_PROVIDER` | Storage provider for the application (currently the application supports `local` and `amazon`) | `amazon` |
|
||||||
| `FORCE_SSL` | Force SSL connections | `false` |
|
| `FORCE_SSL` | Force SSL connections | `false` |
|
||||||
| `MAIL_LINK_HOST` | Host to use in the links sent by email (use your domain without protocol `mydomain.tld`) | |
|
| `MAIL_LINK_HOST` | Host to use in the links sent by email (use your domain without protocol `mydomain.tld`) | |
|
||||||
| `MAIL_LINK_PROTOCOL` | Protocol to use in the previous host defined for links sent by email | `https` |
|
| `MAIL_LINK_PROTO` | Protocol to use in the previous host defined for links sent by email | `https` |
|
||||||
|
| `MAILER_SENDER` | Email address used as the sender for Devise emails (ie: `noreply@mydomain.tld`) | `please-change-me-at-config-initializers-devise@example.com` |
|
||||||
| `SMTP_ADDRESS` | SMTP server address (ie: `smtp.mailgun.org`) | |
|
| `SMTP_ADDRESS` | SMTP server address (ie: `smtp.mailgun.org`) | |
|
||||||
| `SMTP_PORT` | SMTP server port (ie: `587`) | |
|
| `SMTP_PORT` | SMTP server port (ie: `587`) | |
|
||||||
| `SMTP_DOMAIN` | SMTP domain (usually the application's domain) | |
|
| `SMTP_DOMAIN` | SMTP domain (usually the application's domain) | |
|
||||||
|
|||||||
@ -5,6 +5,14 @@ ActiveAdmin.register User do
|
|||||||
link_to I18n.t("active_admin.users.upload_from_csv"), action: "upload_csv"
|
link_to I18n.t("active_admin.users.upload_from_csv"), action: "upload_csv"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
action_item :confirm, only: :show do
|
||||||
|
unless user.confirmed?
|
||||||
|
link_to I18n.t("active_admin.users.confirm_user"),
|
||||||
|
confirm_admin_user_path(user),
|
||||||
|
method: :put
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
collection_action :upload_csv do
|
collection_action :upload_csv do
|
||||||
render "admin/csv/upload_csv"
|
render "admin/csv/upload_csv"
|
||||||
end
|
end
|
||||||
@ -16,6 +24,15 @@ ActiveAdmin.register User do
|
|||||||
redirect_to action: :index
|
redirect_to action: :index
|
||||||
end
|
end
|
||||||
|
|
||||||
|
member_action :confirm, method: :put do
|
||||||
|
resource.skip_confirmation!
|
||||||
|
if resource.save
|
||||||
|
redirect_to admin_user_path(resource), notice: I18n.t("active_admin.users.confirmed_notice")
|
||||||
|
else
|
||||||
|
redirect_to admin_user_path(resource), alert: resource.errors.full_messages.to_sentence
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
scope :all
|
scope :all
|
||||||
scope :without_memberships
|
scope :without_memberships
|
||||||
|
|
||||||
@ -32,6 +49,7 @@ ActiveAdmin.register User do
|
|||||||
column :posts do |u|
|
column :posts do |u|
|
||||||
u.posts.count
|
u.posts.count
|
||||||
end
|
end
|
||||||
|
column :confirmed_at
|
||||||
column :created_at
|
column :created_at
|
||||||
actions
|
actions
|
||||||
end
|
end
|
||||||
@ -53,6 +71,9 @@ ActiveAdmin.register User do
|
|||||||
f.input :postcode
|
f.input :postcode
|
||||||
f.input :gender, as: :select, collection: User::GENDERS
|
f.input :gender, as: :select, collection: User::GENDERS
|
||||||
f.input :locale, as: :select, collection: I18n.available_locales
|
f.input :locale, as: :select, collection: I18n.available_locales
|
||||||
|
f.input :password, required: false, input_html: { autocomplete: "new-password" }
|
||||||
|
f.input :password_confirmation, required: false, input_html: { autocomplete: "new-password" }
|
||||||
|
f.input :confirm_immediately, as: :boolean if f.object.new_record?
|
||||||
end
|
end
|
||||||
f.inputs "Memberships" do
|
f.inputs "Memberships" do
|
||||||
f.has_many :members, allow_destroy: true do |m|
|
f.has_many :members, allow_destroy: true do |m|
|
||||||
@ -91,6 +112,22 @@ ActiveAdmin.register User do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
permit_params :username, :email, :phone, :postcode, :gender, :locale,
|
permit_params :username, :email, :phone, :postcode, :gender, :locale, :confirm_immediately,
|
||||||
|
:password, :password_confirmation,
|
||||||
members_attributes: [:id, :organization_id, :active, :manager, :_destroy]
|
members_attributes: [:id, :organization_id, :active, :manager, :_destroy]
|
||||||
|
|
||||||
|
controller do
|
||||||
|
def create_resource(obj)
|
||||||
|
obj.skip_confirmation! if obj.confirm_immediately
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
|
def update_resource(obj, attributes)
|
||||||
|
if attributes.first[:password].blank?
|
||||||
|
attributes.first.delete(:password)
|
||||||
|
attributes.first.delete(:password_confirmation)
|
||||||
|
end
|
||||||
|
super
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -22,6 +22,7 @@ class User < ApplicationRecord
|
|||||||
|
|
||||||
attr_accessor :empty_email
|
attr_accessor :empty_email
|
||||||
attr_accessor :from_signup
|
attr_accessor :from_signup
|
||||||
|
attribute :confirm_immediately, :boolean
|
||||||
|
|
||||||
has_one_attached :avatar
|
has_one_attached :avatar
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@ module Timeoverflow
|
|||||||
|
|
||||||
# I18n configuration
|
# I18n configuration
|
||||||
config.i18n.default_locale = :es
|
config.i18n.default_locale = :es
|
||||||
config.i18n.available_locales = [:es, :ca, :eu, :gl, :en, :'pt-BR', :fr, :ja]
|
config.i18n.available_locales = [:es, :ca, :eu, :gl, :en, :'pt-BR', :fr, :ja, :'nl-NL']
|
||||||
config.i18n.fallbacks = true
|
config.i18n.fallbacks = true
|
||||||
|
|
||||||
# This tells Rails to serve error pages from the app itself, rather than using static error pages in public/
|
# This tells Rails to serve error pages from the app itself, rather than using static error pages in public/
|
||||||
|
|||||||
@ -2,6 +2,8 @@ ca:
|
|||||||
active_admin:
|
active_admin:
|
||||||
users:
|
users:
|
||||||
organization: Banc de temps
|
organization: Banc de temps
|
||||||
|
confirm_user: Confirmar usuari
|
||||||
|
confirmed_notice: Usuari confirmat correctament
|
||||||
upload_csv: Fitxer
|
upload_csv: Fitxer
|
||||||
upload_from_csv: Importar CSV
|
upload_from_csv: Importar CSV
|
||||||
activerecord:
|
activerecord:
|
||||||
@ -70,6 +72,7 @@ ca:
|
|||||||
registration_date: Data d'alta
|
registration_date: Data d'alta
|
||||||
registration_number: Codi d'usuari
|
registration_number: Codi d'usuari
|
||||||
superadmin: SuperAdministrador del Sistema
|
superadmin: SuperAdministrador del Sistema
|
||||||
|
confirm_immediately: Confirmar immediatament
|
||||||
unconfirmed_email: Correu sense confirmar
|
unconfirmed_email: Correu sense confirmar
|
||||||
updated_at: Actualitzat
|
updated_at: Actualitzat
|
||||||
username: Nom
|
username: Nom
|
||||||
@ -357,6 +360,7 @@ ca:
|
|||||||
gl: Gallec
|
gl: Gallec
|
||||||
pt-BR: Portuguès
|
pt-BR: Portuguès
|
||||||
ja:
|
ja:
|
||||||
|
nl-NL: Holandès
|
||||||
mailers_globals:
|
mailers_globals:
|
||||||
footer:
|
footer:
|
||||||
text: "%{organization_name} en"
|
text: "%{organization_name} en"
|
||||||
|
|||||||
@ -2,6 +2,8 @@ en:
|
|||||||
active_admin:
|
active_admin:
|
||||||
users:
|
users:
|
||||||
organization: Time bank
|
organization: Time bank
|
||||||
|
confirm_user: Confirm user
|
||||||
|
confirmed_notice: User confirmed successfully
|
||||||
upload_csv: File
|
upload_csv: File
|
||||||
upload_from_csv: Upload CSV
|
upload_from_csv: Upload CSV
|
||||||
activerecord:
|
activerecord:
|
||||||
@ -70,6 +72,7 @@ en:
|
|||||||
registration_date: Registration date
|
registration_date: Registration date
|
||||||
registration_number: User code
|
registration_number: User code
|
||||||
superadmin: System Administrator
|
superadmin: System Administrator
|
||||||
|
confirm_immediately: Confirm immediately
|
||||||
unconfirmed_email: Unconfirmed Email
|
unconfirmed_email: Unconfirmed Email
|
||||||
updated_at: Updated
|
updated_at: Updated
|
||||||
username: Name
|
username: Name
|
||||||
@ -356,6 +359,7 @@ en:
|
|||||||
gl: Galician
|
gl: Galician
|
||||||
pt-BR: Portuguese
|
pt-BR: Portuguese
|
||||||
ja: Japanese
|
ja: Japanese
|
||||||
|
nl-NL: Dutch
|
||||||
mailers_globals:
|
mailers_globals:
|
||||||
footer:
|
footer:
|
||||||
text: "%{organization_name} from"
|
text: "%{organization_name} from"
|
||||||
|
|||||||
@ -2,6 +2,8 @@ es:
|
|||||||
active_admin:
|
active_admin:
|
||||||
users:
|
users:
|
||||||
organization: Banco de tiempo
|
organization: Banco de tiempo
|
||||||
|
confirm_user: Confirmar usuario
|
||||||
|
confirmed_notice: Usuario confirmado correctamente
|
||||||
upload_csv: Fichero
|
upload_csv: Fichero
|
||||||
upload_from_csv: Importar CSV
|
upload_from_csv: Importar CSV
|
||||||
activerecord:
|
activerecord:
|
||||||
@ -70,6 +72,7 @@ es:
|
|||||||
registration_date: Fecha de alta
|
registration_date: Fecha de alta
|
||||||
registration_number: Código de usuario
|
registration_number: Código de usuario
|
||||||
superadmin: Administrador de sistema
|
superadmin: Administrador de sistema
|
||||||
|
confirm_immediately: Confirmar inmediatamente
|
||||||
unconfirmed_email: Correo sin confirmar
|
unconfirmed_email: Correo sin confirmar
|
||||||
updated_at: Actualizado
|
updated_at: Actualizado
|
||||||
username: Nombre
|
username: Nombre
|
||||||
@ -359,6 +362,7 @@ es:
|
|||||||
gl: Gallego
|
gl: Gallego
|
||||||
pt-BR: Portugués
|
pt-BR: Portugués
|
||||||
ja: Japonés
|
ja: Japonés
|
||||||
|
nl-NL: Holandès
|
||||||
mailers_globals:
|
mailers_globals:
|
||||||
footer:
|
footer:
|
||||||
text: "%{organization_name} en"
|
text: "%{organization_name} en"
|
||||||
|
|||||||
@ -2,6 +2,8 @@ eu:
|
|||||||
active_admin:
|
active_admin:
|
||||||
users:
|
users:
|
||||||
organization: Denbora Bankua
|
organization: Denbora Bankua
|
||||||
|
confirm_user: Erabiltzailea baieztatu
|
||||||
|
confirmed_notice: Erabiltzailea berretsita
|
||||||
upload_csv: Fitxategia
|
upload_csv: Fitxategia
|
||||||
upload_from_csv: Igo CSVa
|
upload_from_csv: Igo CSVa
|
||||||
activerecord:
|
activerecord:
|
||||||
@ -70,6 +72,7 @@ eu:
|
|||||||
registration_date: Erregistratze-da
|
registration_date: Erregistratze-da
|
||||||
registration_number: Erabiltzaile kodea
|
registration_number: Erabiltzaile kodea
|
||||||
superadmin: Sistema administratzailea
|
superadmin: Sistema administratzailea
|
||||||
|
confirm_immediately: Berehala baieztatu
|
||||||
unconfirmed_email: Baieztatu gabeko eposta
|
unconfirmed_email: Baieztatu gabeko eposta
|
||||||
updated_at: Eguneratua
|
updated_at: Eguneratua
|
||||||
username: Izena
|
username: Izena
|
||||||
@ -357,6 +360,7 @@ eu:
|
|||||||
gl: Galiziera
|
gl: Galiziera
|
||||||
pt-BR: Portugesa
|
pt-BR: Portugesa
|
||||||
ja:
|
ja:
|
||||||
|
nl-NL: Holandera
|
||||||
mailers_globals:
|
mailers_globals:
|
||||||
footer:
|
footer:
|
||||||
text: "%{organization_name}tik"
|
text: "%{organization_name}tik"
|
||||||
|
|||||||
@ -2,6 +2,8 @@ fr:
|
|||||||
active_admin:
|
active_admin:
|
||||||
users:
|
users:
|
||||||
organization: Banque de temps
|
organization: Banque de temps
|
||||||
|
confirm_user: "Confirmer l'utilisateur"
|
||||||
|
confirmed_notice: "Utilisateur confirmé avec succès"
|
||||||
upload_csv: Fichier
|
upload_csv: Fichier
|
||||||
upload_from_csv: Uploader un CSV
|
upload_from_csv: Uploader un CSV
|
||||||
activerecord:
|
activerecord:
|
||||||
@ -70,6 +72,7 @@ fr:
|
|||||||
registration_date: Date d'inscription
|
registration_date: Date d'inscription
|
||||||
registration_number: Numéro d'inscription
|
registration_number: Numéro d'inscription
|
||||||
superadmin: Administrateur système
|
superadmin: Administrateur système
|
||||||
|
confirm_immediately: Confirmer immédiatement
|
||||||
unconfirmed_email: Adresse email non-confirmée
|
unconfirmed_email: Adresse email non-confirmée
|
||||||
updated_at: Mis·e à jour le
|
updated_at: Mis·e à jour le
|
||||||
username: Nom
|
username: Nom
|
||||||
@ -358,6 +361,7 @@ fr:
|
|||||||
gl: Galicien
|
gl: Galicien
|
||||||
pt-BR: Portugais
|
pt-BR: Portugais
|
||||||
ja:
|
ja:
|
||||||
|
nl-NL: Néerlandais
|
||||||
mailers_globals:
|
mailers_globals:
|
||||||
footer:
|
footer:
|
||||||
text: "%{organization_name} de"
|
text: "%{organization_name} de"
|
||||||
|
|||||||
@ -2,6 +2,8 @@ gl:
|
|||||||
active_admin:
|
active_admin:
|
||||||
users:
|
users:
|
||||||
organization: Banco de tempo
|
organization: Banco de tempo
|
||||||
|
confirm_user: Confirmar usuario
|
||||||
|
confirmed_notice: Usuario confirmado correctamente
|
||||||
upload_csv: Ficheiro
|
upload_csv: Ficheiro
|
||||||
upload_from_csv: Importar CSV
|
upload_from_csv: Importar CSV
|
||||||
activerecord:
|
activerecord:
|
||||||
@ -70,6 +72,7 @@ gl:
|
|||||||
registration_date: Data de rexistro
|
registration_date: Data de rexistro
|
||||||
registration_number: Código de persoa usuaria
|
registration_number: Código de persoa usuaria
|
||||||
superadmin: Persoa dministradora do sistema
|
superadmin: Persoa dministradora do sistema
|
||||||
|
confirm_immediately: Confirmar inmediatamente
|
||||||
unconfirmed_email: Correo electrónico non confirmado
|
unconfirmed_email: Correo electrónico non confirmado
|
||||||
updated_at: Actualizado
|
updated_at: Actualizado
|
||||||
username: Nome
|
username: Nome
|
||||||
@ -357,6 +360,7 @@ gl:
|
|||||||
gl: Galego
|
gl: Galego
|
||||||
pt-BR: Portugués (Brasil)
|
pt-BR: Portugués (Brasil)
|
||||||
ja:
|
ja:
|
||||||
|
nl-NL: Holandés
|
||||||
mailers_globals:
|
mailers_globals:
|
||||||
footer:
|
footer:
|
||||||
text: "%{organization_name} de"
|
text: "%{organization_name} de"
|
||||||
|
|||||||
@ -2,6 +2,8 @@ ja:
|
|||||||
active_admin:
|
active_admin:
|
||||||
users:
|
users:
|
||||||
organization: タイムバンク
|
organization: タイムバンク
|
||||||
|
confirm_user: ユーザーを確認
|
||||||
|
confirmed_notice: ユーザーが確認されました
|
||||||
upload_csv: ファイル
|
upload_csv: ファイル
|
||||||
upload_from_csv: CSVをインポート
|
upload_from_csv: CSVをインポート
|
||||||
activerecord:
|
activerecord:
|
||||||
@ -70,6 +72,7 @@ ja:
|
|||||||
registration_date: 登録日
|
registration_date: 登録日
|
||||||
registration_number: ユーザー番号
|
registration_number: ユーザー番号
|
||||||
superadmin: システム管理者
|
superadmin: システム管理者
|
||||||
|
confirm_immediately: すぐに確認する
|
||||||
unconfirmed_email: 未確認メールアドレス
|
unconfirmed_email: 未確認メールアドレス
|
||||||
updated_at: 更新
|
updated_at: 更新
|
||||||
username: 名前
|
username: 名前
|
||||||
@ -324,6 +327,7 @@ ja:
|
|||||||
gl: ガリシア語
|
gl: ガリシア語
|
||||||
pt-BR: ブラジルポルトガル語
|
pt-BR: ブラジルポルトガル語
|
||||||
ja: 日本語
|
ja: 日本語
|
||||||
|
nl-NL: オランダ語
|
||||||
mailers_globals:
|
mailers_globals:
|
||||||
footer:
|
footer:
|
||||||
text: "%{organization_name}から"
|
text: "%{organization_name}から"
|
||||||
|
|||||||
635
config/locales/nl-NL.yml
Normal file
635
config/locales/nl-NL.yml
Normal file
@ -0,0 +1,635 @@
|
|||||||
|
nl-NL:
|
||||||
|
active_admin:
|
||||||
|
users:
|
||||||
|
organization: Tijdbank
|
||||||
|
upload_csv: Bestand
|
||||||
|
upload_from_csv: CSV uploaden
|
||||||
|
activerecord:
|
||||||
|
attributes:
|
||||||
|
account:
|
||||||
|
balance: Balans
|
||||||
|
organization: Organisatie
|
||||||
|
category:
|
||||||
|
created_at: Aangemaakt
|
||||||
|
name: Naam
|
||||||
|
name_translations: Naam (vertalingen)
|
||||||
|
parent: Hoofdcategorie
|
||||||
|
updated_at: Bijgewerkt
|
||||||
|
common:
|
||||||
|
created_at: Aangemaakt
|
||||||
|
updated_at: Bijgewerkt
|
||||||
|
inquiry:
|
||||||
|
is_group: Groepsverzoek
|
||||||
|
offer:
|
||||||
|
is_group: Groepsaanbieding
|
||||||
|
organization:
|
||||||
|
address: Adres
|
||||||
|
city: Plaats
|
||||||
|
created_at: Aangemaakt
|
||||||
|
description: Omschrijving
|
||||||
|
email: E-mail
|
||||||
|
name: Naam
|
||||||
|
neighborhood: Buurt
|
||||||
|
phone: Telefoonnummer
|
||||||
|
public_opening_times: Openingstijden
|
||||||
|
reg_number_seq: Gebruikersvolgnummer
|
||||||
|
updated_at: Bijgewerkt
|
||||||
|
post:
|
||||||
|
category: Categorie
|
||||||
|
created_at: Aangemaakt
|
||||||
|
description: Omschrijving
|
||||||
|
end_on: Eindigt op
|
||||||
|
start_on: Begint op
|
||||||
|
tag_list: Labels
|
||||||
|
title: Titel
|
||||||
|
updated_at: Bijgewerkt
|
||||||
|
transfer:
|
||||||
|
amount: Aantal
|
||||||
|
created_at: Aangemaakt
|
||||||
|
hours: Uren
|
||||||
|
minutes: Minuten
|
||||||
|
post: Bericht
|
||||||
|
reason: Reacties
|
||||||
|
source: Bron
|
||||||
|
updated_at: Bijgewerkt
|
||||||
|
user:
|
||||||
|
admin: Organisatiebeheerder
|
||||||
|
alt_phone: Alternatief telefoonnummer
|
||||||
|
created_at: Aangemaakt
|
||||||
|
date_of_birth: Geboortedatum
|
||||||
|
deactivated: Gedeactiveerd
|
||||||
|
description: Omschrijving
|
||||||
|
email: E-mail
|
||||||
|
gender: Geslacht
|
||||||
|
last_sign_in_at: Laatste login
|
||||||
|
notifications: E-mailmeldingen ontvangen
|
||||||
|
organization: Organisatie
|
||||||
|
phone: Telefoonnummer
|
||||||
|
postcode: Postcode
|
||||||
|
push_notifications: Mobiele meldingen ontvangen
|
||||||
|
registration_date: Registratiedatum
|
||||||
|
registration_number: Gebruikerscode
|
||||||
|
superadmin: Systeembeheerder
|
||||||
|
unconfirmed_email: Onbevestigd e-mailadres
|
||||||
|
updated_at: Bijgewerkt
|
||||||
|
username: Naam
|
||||||
|
errors:
|
||||||
|
models:
|
||||||
|
organization:
|
||||||
|
attributes:
|
||||||
|
web:
|
||||||
|
url_format_invalid: Ongeldige URL-indeling
|
||||||
|
transfer:
|
||||||
|
attributes:
|
||||||
|
base:
|
||||||
|
same_account: Een overdracht kan niet overgemaakt worden naar
|
||||||
|
hetzelfde account
|
||||||
|
user:
|
||||||
|
attributes:
|
||||||
|
email:
|
||||||
|
invalid: ongeldig
|
||||||
|
models:
|
||||||
|
category:
|
||||||
|
one: Categorie
|
||||||
|
other: Categorieën
|
||||||
|
comment:
|
||||||
|
one: Opmerking
|
||||||
|
other: Opmerkingen
|
||||||
|
inquiry:
|
||||||
|
one: Verzoek
|
||||||
|
other: Verzoeken
|
||||||
|
offer:
|
||||||
|
one: Aanbieding
|
||||||
|
other: Aanbiedingen
|
||||||
|
organization:
|
||||||
|
one: Tijdbank
|
||||||
|
other: Tijdbanken
|
||||||
|
post:
|
||||||
|
one: Bericht
|
||||||
|
other: Berichten
|
||||||
|
transfer:
|
||||||
|
one: Overboeking
|
||||||
|
other: Overboekingen
|
||||||
|
user:
|
||||||
|
one: Gebruiker
|
||||||
|
other: Gebruikers
|
||||||
|
application:
|
||||||
|
landing:
|
||||||
|
button: Invoeren
|
||||||
|
slogan: Laten we onze tijd waarderen
|
||||||
|
sub_slogan: Er is een tijdbank bij u in de buurt
|
||||||
|
login_form:
|
||||||
|
button: Invoeren
|
||||||
|
email: E-mail
|
||||||
|
password: Wachtwoord
|
||||||
|
remember_check: Onthoud mij
|
||||||
|
menu:
|
||||||
|
sign_in: Inloggen
|
||||||
|
sing_out: Uitloggen
|
||||||
|
menus:
|
||||||
|
offers_by_tag_link:
|
||||||
|
tags: Labels
|
||||||
|
navbar:
|
||||||
|
admin: Beheren
|
||||||
|
administration: Administratie
|
||||||
|
adminshort: Beheer
|
||||||
|
all_transfers: Alle overboekingen
|
||||||
|
categories: Diensten
|
||||||
|
demographics: Demografische gegevens
|
||||||
|
global_activity: Wereldwijde activiteit
|
||||||
|
inactive_users: Inactieve gebruikers
|
||||||
|
inquiry_public_link: Openbare link naar verzoeken
|
||||||
|
last_login: Laatste login
|
||||||
|
offer_public_link: Openbare link naar aanbiedingen
|
||||||
|
organizations: Organisaties
|
||||||
|
reports: Rapporten
|
||||||
|
sign_out: Uitloggen
|
||||||
|
statistics: Statistieken
|
||||||
|
statistics_all_transfers: Alle overboekingen
|
||||||
|
stats: Statistieken
|
||||||
|
tags: Labels
|
||||||
|
type_of_swaps: Type transacties
|
||||||
|
users: Gebruikers
|
||||||
|
without_offers: Zonder aanbiedingen
|
||||||
|
terms_conditions: Gebruiksvoorwaarden
|
||||||
|
tips:
|
||||||
|
entertag: Voer labels gescheiden door komma's in
|
||||||
|
user_not_found: Gebruiker niet gevonden.
|
||||||
|
devise:
|
||||||
|
confirmations:
|
||||||
|
confirmed: Uw account is succesvol bevestigd.
|
||||||
|
confirmed_and_signed_in: Uw account is succesvol bevestigd. U bent nu ingelogd.
|
||||||
|
new:
|
||||||
|
resend_instructions: Instructies voor het opnieuw verzenden van de bevestiging
|
||||||
|
resend_instructions_button: Opnieuw verzenden
|
||||||
|
resend_instructions_description: Als u uw e-mailadres hebt gewijzigd,
|
||||||
|
moet u het volgende doen
|
||||||
|
send_instructions: U ontvangt binnen enkele minuten een e-mail met
|
||||||
|
instructies voor het bevestigen van uw account.
|
||||||
|
send_paranoid_instructions: Als uw e-mailadres in onze database staat,
|
||||||
|
ontvangt u binnen enkele minuten een e-mail met instructies voor het
|
||||||
|
bevestigen van uw account.
|
||||||
|
failure:
|
||||||
|
already_authenticated: U bent al ingelogd.
|
||||||
|
inactive: Uw account is nog niet geactiveerd.
|
||||||
|
invalid: Ongeldig e-mailadres of wachtwoord.
|
||||||
|
invalid_token: Ongeldig authenticatietoken.
|
||||||
|
locked: Uw account is geblokkeerd.
|
||||||
|
not_found_in_database: Ongeldig e-mailadres of wachtwoord.
|
||||||
|
timeout: Uw sessie is verlopen. Log opnieuw in om verder te gaan.
|
||||||
|
unauthenticated: U moet inloggen of registreren voordat u verder kunt gaan.
|
||||||
|
unconfirmed: U moet uw account bevestigen voordat u verder kunt gaan.
|
||||||
|
user:
|
||||||
|
last_attempt: Let op, u hebt nog één poging voordat uw account wordt geblokkeerd
|
||||||
|
mailer:
|
||||||
|
confirmation_instructions:
|
||||||
|
subject: Bevestigingsinstructies
|
||||||
|
reset_password_instructions:
|
||||||
|
subject: Instructies voor het opnieuw instellen van uw wachtwoord
|
||||||
|
unlock_instructions:
|
||||||
|
subject: Instructies voor ontgrendelen
|
||||||
|
omniauth_callbacks:
|
||||||
|
failure: Authenticatie vanaf %{kind} is niet mogelijk vanwege "%{reason}".
|
||||||
|
success: Authenticatie vanaf %{kind} account is succesvol voltooid.
|
||||||
|
passwords:
|
||||||
|
edit:
|
||||||
|
change_password: Mijn wachtwoord wijzigen
|
||||||
|
confirm_password: Bevestig uw nieuwe wachtwoord
|
||||||
|
new_password: Nieuw wachtwoord
|
||||||
|
passwords_not_match: Wachtwoorden komen niet overeen
|
||||||
|
new:
|
||||||
|
forgot_question: Een nieuw wachtwoord aanmaken
|
||||||
|
forgot_question_description: Voer het e-mailadres in dat aan uw account
|
||||||
|
is gekoppeld en wij sturen u een e-mail met een link om een nieuw
|
||||||
|
wachtwoord aan te maken.
|
||||||
|
send_instructions: Link verzenden
|
||||||
|
no_token: U hebt geen toegang tot deze pagina als u niet via een e-mail
|
||||||
|
voor het opnieuw instellen van uw wachtwoord op deze pagina terecht bent
|
||||||
|
gekomen. Als u via zo'n e-mail komt, zorg er dan voor dat u de volledige
|
||||||
|
URL gebruikt.
|
||||||
|
send_instructions: U ontvangt binnen enkele minuten een e-mail met
|
||||||
|
instructies voor het opnieuw instellen van uw wachtwoord.
|
||||||
|
send_paranoid_instructions: Als uw e-mailadres in onze database staat,
|
||||||
|
ontvangt u binnen enkele minuten een link voor wachtwoordherstel op uw
|
||||||
|
e-mailadres.
|
||||||
|
updated: Uw wachtwoord is succesvol gewijzigd. U bent nu ingelogd.
|
||||||
|
updated_not_active: Uw wachtwoord is succesvol gewijzigd.
|
||||||
|
registrations:
|
||||||
|
destroyed: Tot ziens! Uw account is succesvol geannuleerd. We hopen u
|
||||||
|
snel weer te zien.
|
||||||
|
edit:
|
||||||
|
cancel_account: Account annuleren
|
||||||
|
current_password: Huidig wachtwoord
|
||||||
|
edit_user: Gebruiker bewerken
|
||||||
|
help_current_password: Hulp bij huidig wachtwoord
|
||||||
|
help_password: Hulp bij wachtwoord
|
||||||
|
password: Wachtwoord
|
||||||
|
password_confirmation: Wachtwoordbevestiging
|
||||||
|
unhappy: Niet tevreden
|
||||||
|
update: Bijwerken
|
||||||
|
new:
|
||||||
|
password: Wachtwoord
|
||||||
|
password_confirmation: Wachtwoordbevestiging
|
||||||
|
sign_me_up: Meld me aan
|
||||||
|
sign_up: Aanmelden
|
||||||
|
signed_up: Welkom! U bent succesvol aangemeld.
|
||||||
|
signed_up_but_inactive: U hebt zich succesvol aangemeld. We konden u
|
||||||
|
echter niet inloggen omdat uw account nog niet is geactiveerd.
|
||||||
|
signed_up_but_locked: U hebt zich succesvol aangemeld. We konden u echter
|
||||||
|
niet inloggen omdat uw account is geblokkeerd.
|
||||||
|
signed_up_but_unconfirmed: Er is een bericht met een bevestigingslink
|
||||||
|
naar uw e-mailadres verzonden. Open de link om uw account te activeren.
|
||||||
|
update_needs_confirmation: U account is succesvol bijgewerkt, maar we
|
||||||
|
moeten uw nieuwe e-mailadres nog verifiëren. Controleer uw e-mail en klik
|
||||||
|
op de bevestigingslink om de verificatie van uw nieuwe e-mailadres af te
|
||||||
|
ronden.
|
||||||
|
updated: U hebt uw account succesvol bijgewerkt.
|
||||||
|
sessions:
|
||||||
|
new:
|
||||||
|
remember_me: Onthoud mij
|
||||||
|
sign_in: Inloggen
|
||||||
|
user:
|
||||||
|
signed_in: Ingelogd
|
||||||
|
signed_out: Uitgelogd
|
||||||
|
shared:
|
||||||
|
links:
|
||||||
|
didnt_receive_confirmation_instructions: Bevestigingsmail opnieuw verzenden
|
||||||
|
didnt_receive_unlock_instructions: Ontgrendelingsinstructies ontvangen
|
||||||
|
forgot_your_password: Ik weet mijn wachtwoord niet meer
|
||||||
|
sign_in: Inloggen
|
||||||
|
sign_in_with: Inloggen met %{provider}
|
||||||
|
sign_up: Registreren
|
||||||
|
unlocks:
|
||||||
|
new:
|
||||||
|
resend_instructions: Ontgrendelingsinstructies opnieuw verzenden
|
||||||
|
resend_instructions_button: Opnieuw verzenden
|
||||||
|
resend_instructions_description: Als u per ongeluk meer dan vijf keer
|
||||||
|
bent ingelogd, moet u deze stap uitvoeren om uw account te
|
||||||
|
ontgrendelen.
|
||||||
|
send_instructions: U ontvangt binnen enkele minuten een e-mail met
|
||||||
|
instructies voor het ontgrendelen van uw account.
|
||||||
|
send_paranoid_instructions: Als uw account bestaat, ontvangt u binnen
|
||||||
|
enkele minuten een e-mail met instructies voor het ontgrendelen ervan.
|
||||||
|
unlocked: Uw account is succesvol ontgrendeld. Log in om verder te gaan.
|
||||||
|
errors:
|
||||||
|
internal_server_error:
|
||||||
|
description: Het spijt ons, er lijkt een fout te zijn opgetreden bij dit
|
||||||
|
verzoek. We hebben automatisch een melding ontvangen en zullen dit zo
|
||||||
|
snel mogelijk oplossen.
|
||||||
|
title: Interne serverfout
|
||||||
|
messages:
|
||||||
|
already_confirmed: is al bevestigd, probeer opnieuw in te loggen
|
||||||
|
confirmation_period_expired: Moet binnen %{period} bevestigd worden, vraag een nieuwe aan
|
||||||
|
expired: is verlopen, vraag een nieuwe aan
|
||||||
|
not_found: niet gevonden
|
||||||
|
not_locked: was niet vergrendeld
|
||||||
|
not_saved:
|
||||||
|
one: '1 fout verhinderde dat deze %{resource} kon worden opgeslagen:'
|
||||||
|
other: "%{count} fouten verhinderden dat deze %{resource} kon worden opgeslagen:"
|
||||||
|
not_found:
|
||||||
|
description: De pagina die u zocht bestaat niet. Mogelijk hebt u het
|
||||||
|
adres verkeerd ingetypt of is de pagina verplaatst.
|
||||||
|
title: Niet gevonden
|
||||||
|
global:
|
||||||
|
add_new: Nieuw aanmaken
|
||||||
|
all: Alles
|
||||||
|
amount: Aantal
|
||||||
|
announcements: Bericht
|
||||||
|
back: Terug
|
||||||
|
balance: 'Saldo:'
|
||||||
|
cancel_membership: Permanente verwijdering
|
||||||
|
contact_details: Contactgegevens
|
||||||
|
create: Aanmaken
|
||||||
|
date: Gegevens
|
||||||
|
decline: Weigeren
|
||||||
|
delete: Verwijderen
|
||||||
|
demote: Degraderen naar normale gebruiker
|
||||||
|
edit: Bijwerken
|
||||||
|
enter_to_timebank: Toevoegen aan tijdbank
|
||||||
|
filter: Filter
|
||||||
|
from: Van
|
||||||
|
give_time: Tijdsoverdracht
|
||||||
|
here: hier
|
||||||
|
home: Home
|
||||||
|
information: Informatie
|
||||||
|
locales_header: taal wijzigen
|
||||||
|
member_count: 'Aantal gebruikers:'
|
||||||
|
more: Meer
|
||||||
|
movements: Transacties
|
||||||
|
next: Volgende
|
||||||
|
or: of
|
||||||
|
promote: Promotie tot beheerder
|
||||||
|
reason: Reden
|
||||||
|
required_field: "* Verplicht veld"
|
||||||
|
save: Opslaan
|
||||||
|
search: Zoeken
|
||||||
|
search_location: Zoeken op locatie
|
||||||
|
show: Tonen
|
||||||
|
source_destination: Van/tot
|
||||||
|
statistics: Statistieken
|
||||||
|
table:
|
||||||
|
actions: Acties
|
||||||
|
to: Naar
|
||||||
|
inquiries:
|
||||||
|
edit:
|
||||||
|
submit: Verzoek wijzigen
|
||||||
|
index:
|
||||||
|
new_inquiry: Nieuw verzoek
|
||||||
|
new:
|
||||||
|
submit: Verzoek aanmaken
|
||||||
|
layouts:
|
||||||
|
application:
|
||||||
|
about: Over TimeOverflow
|
||||||
|
bdtnear: Tijdbank doorzoeken
|
||||||
|
edit_org: Bijwerken %{organization}
|
||||||
|
edit_profile: Mijn profiel bijwerken
|
||||||
|
help: Help
|
||||||
|
login: Inloggen
|
||||||
|
manage_memberships: Lidmaatschappen beheren
|
||||||
|
no_memberhsip_warning: Uw registratie is voltooid zodra u een verzoek
|
||||||
|
hebt ingediend om lid te worden van een Timebank en de Timebank uw
|
||||||
|
verzoek heeft geaccepteerd. Als u binnen 30 dagen geen verzoek indient
|
||||||
|
om lid te worden van een Timebank, wordt uw gebruikersaccount uit het
|
||||||
|
systeem verwijderd.
|
||||||
|
report:
|
||||||
|
report_title: REPORT
|
||||||
|
locales:
|
||||||
|
ca: Catalan
|
||||||
|
en: English
|
||||||
|
es: Spanish
|
||||||
|
eu: Basque
|
||||||
|
fr: French
|
||||||
|
gl: Galician
|
||||||
|
pt-BR: Portuguese
|
||||||
|
ja: Japanese
|
||||||
|
nl-NL: Nederlands
|
||||||
|
mailers_globals:
|
||||||
|
footer:
|
||||||
|
text: "%{organization_name} van"
|
||||||
|
text_donation: De ADBdT-vereniging biedt TimeOverflow gratis aan tijdbanken aan. Als u wilt helpen bij het onderhouden en verbeteren van het platform, kunt u %{href}.
|
||||||
|
text_donation_link: bezoek deze website
|
||||||
|
multi_transfers:
|
||||||
|
multi_transfers: Meerdere overboekingen
|
||||||
|
step:
|
||||||
|
confirm:
|
||||||
|
description: Bevestig de wijzigingen
|
||||||
|
type_of_transfer: Type overboeking
|
||||||
|
select_type:
|
||||||
|
description: Selecteer het type overboeking
|
||||||
|
set_params:
|
||||||
|
description: Geef het over te maken bedrag, de reden en de boeking
|
||||||
|
(indien van toepassing) op.
|
||||||
|
set_source:
|
||||||
|
description: Selecteer de rekening(en) waarnaar de tijd wordt overgeboekt
|
||||||
|
set_target:
|
||||||
|
description: Selecteer de rekening(en) die de tijd ontvangt
|
||||||
|
success: Succesvol aangemaakte overboekingen
|
||||||
|
types:
|
||||||
|
many_to_one: Veel-op-één
|
||||||
|
one_to_many: Eén-op-veel
|
||||||
|
one_to_one: Eén-op-één
|
||||||
|
offers:
|
||||||
|
edit:
|
||||||
|
submit: Aanbod wijzigen
|
||||||
|
index:
|
||||||
|
by_category: Per categorie
|
||||||
|
by_tag: Per label
|
||||||
|
filtek: Filter
|
||||||
|
new_offer: Nieuw aanbod
|
||||||
|
offered_by: Aangeboden door %{size} personen
|
||||||
|
new:
|
||||||
|
submit: Aanbod aanmaken
|
||||||
|
show:
|
||||||
|
give_time_for: Tijdsoverdracht voor dit aanbod
|
||||||
|
offered_by: Aangeboden door
|
||||||
|
organization_notifier:
|
||||||
|
member_deleted:
|
||||||
|
body: Gebruiker %{username} heeft zich afgemeld bij de organisatie.
|
||||||
|
recent_posts:
|
||||||
|
subject: Nieuwsbrief
|
||||||
|
text1: 'Laatst gepubliceerde aanbiedingen:'
|
||||||
|
text2: 'Laatst gepubliceerde aanvragen:'
|
||||||
|
organizations:
|
||||||
|
give_time:
|
||||||
|
give_time: Tijd geven aan
|
||||||
|
index:
|
||||||
|
member_count: Aantal gebruikers
|
||||||
|
new:
|
||||||
|
new: Nieuwe bank
|
||||||
|
show:
|
||||||
|
contact_information: Contactgegevens
|
||||||
|
join_timebank: Neem gerust contact op met de tijdbank om u aan te melden
|
||||||
|
of vragen te stellen.
|
||||||
|
pages:
|
||||||
|
about:
|
||||||
|
app-mobile: Mobiele app
|
||||||
|
app-mobile-text: De mobiele app TimeOverflow is beschikbaar. <br /> Deze app is mogelijk gemaakt dankzij de samenwerking met de gemeente Barcelona, programma %{impulsem_link} (Barcelona Activa) 2017-2018.
|
||||||
|
banner-button: Toegang tot TimeOverflow aanvragen
|
||||||
|
banner-subtitle: We nemen contact met u op om de app te starten of een demonstratie te geven
|
||||||
|
banner-title: Bent u een Tijdbank?
|
||||||
|
empower-adbdt: ADBdT
|
||||||
|
empower-adbdt-title: Vereniging voor de Ontwikkeling van Tijdbanken
|
||||||
|
empower-coopdevs: Coopdevs
|
||||||
|
empower-coopdevs-title: Coopdevs
|
||||||
|
empower-github: Github
|
||||||
|
empower-github-title: Github
|
||||||
|
empower-showmap: zie kaart
|
||||||
|
empower-showmap-title: Tijdbanken
|
||||||
|
empower-text-1: TimeOveflow is speciaal ontworpen voor en door Time Banks
|
||||||
|
die fysiek bestaan — %{showmap_link} – en het doel ervan is om ze
|
||||||
|
te versterken dankzij internet.
|
||||||
|
empower-text-2: Dankzij de gezamenlijke inspanningen van %{coopdevs_link}
|
||||||
|
en %{abdt_link} kunnen we de software TimeOverflow vandaag gratis en open
|
||||||
|
aanbieden aan alle tijdbanken die er gebruik van willen maken.
|
||||||
|
empower-text-3: De broncode van TimeOverflow is beschikbaar onder een
|
||||||
|
open source-licentie en je kunt deze downloaden via %{github_link}.
|
||||||
|
empower-title: Het versterken van de tijdbanken
|
||||||
|
feature-group-1: Tijdbankbeheer met beheerdersrollen
|
||||||
|
feature-group-2: Sociaal netwerk en online bankieren toegankelijk voor leden
|
||||||
|
feature-text-1: Aanmaken/verwijderen/bijwerken van bankleden
|
||||||
|
feature-text-2: Plaatsen van aanbiedingen en aanvragen
|
||||||
|
feature-text-3: Invoeren van cheques en beheren van de boekhouding
|
||||||
|
feature-text-4: Leden van een tijdbank hebben toegang tot het systeem en
|
||||||
|
kunnen verbinding maken met anderen
|
||||||
|
feature-text-5: Plaatsen van aanbiedingen en aanvragen
|
||||||
|
feature-text-6: Uren uitbetalen aan andere leden
|
||||||
|
impulsem-link: Impulsem el que fas
|
||||||
|
subtitle: TimeOverflow is open source, gratis en collaboratief
|
||||||
|
title: De software is ontworpen door en voor
|
||||||
|
title2: Tijdbanken
|
||||||
|
petitions:
|
||||||
|
application_sent: Aanvraag correct verzonden
|
||||||
|
application_sent_body: Hallo! Uw sollicitatie bij %{organization_name} is correct verzonden.
|
||||||
|
application_status: Aanvraag %{status}
|
||||||
|
applications: Aanvragen
|
||||||
|
apply: Aanmelden
|
||||||
|
new: Nieuwe aanvraag
|
||||||
|
new_body: Hallo, %{username} heeft zojuist een verzoek ingediend om lid te worden van %{organization_name} Tijdbank. U kunt %{here_link} invoeren om het verzoek te accepteren of af te wijzen. Zodra u het verzoek accepteert, verschijnt de gebruiker automatisch in uw gebruikerslijst.
|
||||||
|
status:
|
||||||
|
accepted: geaccepteerd
|
||||||
|
declined: afgewezen
|
||||||
|
pending: in behandeling
|
||||||
|
sent: verzonden
|
||||||
|
status_applications: "%{status} aanvragen"
|
||||||
|
posts:
|
||||||
|
show:
|
||||||
|
info: Deze %{type} behoort tot %{organization}.
|
||||||
|
reports:
|
||||||
|
download: Downloaden
|
||||||
|
download_all: Alles downloaden
|
||||||
|
shared:
|
||||||
|
movements:
|
||||||
|
delete_reason: Weet je zeker dat je deze reactie wilt verwijderen?
|
||||||
|
movements: Uitwisselingen
|
||||||
|
post_form:
|
||||||
|
group_inquiry: Is dit een groepsverzoek?
|
||||||
|
group_offer: Is dit een groepsaanbieding?
|
||||||
|
you_can_use: Je kunt gebruiken
|
||||||
|
simple_form:
|
||||||
|
error_notification:
|
||||||
|
default_message: 'Bekijk de onderstaande problemen:'
|
||||||
|
'nee': 'Nee'
|
||||||
|
options:
|
||||||
|
user:
|
||||||
|
gender:
|
||||||
|
female: Vrouw
|
||||||
|
male: Man
|
||||||
|
others: Anders
|
||||||
|
prefer_not_to_answer: Ik geef er de voorkeur aan om niet te antwoorden
|
||||||
|
required:
|
||||||
|
mark: "*"
|
||||||
|
text: verplicht
|
||||||
|
'ja': 'Ja'
|
||||||
|
statistics:
|
||||||
|
all_transfers:
|
||||||
|
date: Datum
|
||||||
|
delete_reason: Weet je zeker dat je deze reactie wilt verwijderen?
|
||||||
|
from: Van
|
||||||
|
post: Bericht
|
||||||
|
quantity: Aantal
|
||||||
|
reason: Reden
|
||||||
|
to: Naar
|
||||||
|
transfers: Alle overboekingen
|
||||||
|
demographics:
|
||||||
|
by_ages: Per leeftijd
|
||||||
|
by_gender: Per geslacht
|
||||||
|
demographics: Demografische gegevens
|
||||||
|
female: Vrouw
|
||||||
|
male: Man
|
||||||
|
num_people: "# aantal personen"
|
||||||
|
unknown: Onbekend
|
||||||
|
global_activity:
|
||||||
|
bank_activity: Bankactiviteit
|
||||||
|
global_activity: Wereldwijde activiteit
|
||||||
|
num_swaps: " Transacties"
|
||||||
|
per_month: Per maand
|
||||||
|
show: Weergeven
|
||||||
|
total_hours: " antal overgeboekte uren"
|
||||||
|
users_reg: " Geregistreerde gebruikers"
|
||||||
|
inactive_users:
|
||||||
|
days_without_swaps: Dagen zonder transacties
|
||||||
|
inactive_users: Inactieve gebruikers
|
||||||
|
last_movement: Laatste transactie
|
||||||
|
no_movements: Zonder transacties
|
||||||
|
last_login:
|
||||||
|
last_login: Laatste login
|
||||||
|
never_login: Nooit ingelogd
|
||||||
|
type_swaps:
|
||||||
|
type_of_swaps: Type transacties
|
||||||
|
without_category: Zonder categorie
|
||||||
|
without_tags: Zonder tags
|
||||||
|
without_offers:
|
||||||
|
without_offers: Zonder aanbiedingen
|
||||||
|
stats:
|
||||||
|
min_balance:
|
||||||
|
title: Minimumsaldo gebruikers
|
||||||
|
tags:
|
||||||
|
alpha_grouped_index:
|
||||||
|
maintitle: Beschikbare labels
|
||||||
|
terms:
|
||||||
|
accept: Accepteren
|
||||||
|
show:
|
||||||
|
accept: Accepteren
|
||||||
|
transfers:
|
||||||
|
computation:
|
||||||
|
hour:
|
||||||
|
one: "%{count} uur"
|
||||||
|
other: "%{count} uur"
|
||||||
|
joiner: " en "
|
||||||
|
minute:
|
||||||
|
one: "%{count} minuut"
|
||||||
|
other: "%{count} minuten"
|
||||||
|
new:
|
||||||
|
error_amount: Tijd moet groter zijn dan 0
|
||||||
|
users:
|
||||||
|
avatar:
|
||||||
|
change_your_image: Uw afbeelding wijzigen
|
||||||
|
crop_the_image: Afbeelding bijsnijden
|
||||||
|
max_size_warning: Afbeelding is te groot, maximaal toegestaan is %{size}MB
|
||||||
|
confirm_email:
|
||||||
|
email_sent: Er is een e-mail verzonden naar %{email}. Na bevestiging kunt
|
||||||
|
u solliciteren bij elke organisatie.
|
||||||
|
please: Bevestig het e-mailadres
|
||||||
|
edit:
|
||||||
|
edit_user: Gebruiker bijwerken
|
||||||
|
form:
|
||||||
|
notifications: Meldingen
|
||||||
|
give_time:
|
||||||
|
give_time: Geef het even de tijd
|
||||||
|
index:
|
||||||
|
account_deactivated: Uw account is gedeactiveerd in deze tijdbank
|
||||||
|
actions: Acties
|
||||||
|
active_warning: U gaat de accountstatus van gebruiker %{username} wijzigen
|
||||||
|
cancel_warning: U gaat het account van gebruiker %{username} verwijderen
|
||||||
|
uit de tijdbank
|
||||||
|
create: Nieuwe gebruiker aanmaken
|
||||||
|
deactivated_warning: Als u denkt dat uw account per ongeluk is
|
||||||
|
gedeactiveerd, neem dan contact op met de beheerder via onderstaande
|
||||||
|
gegevens.
|
||||||
|
manage_warning: U gaat de rechten van gebruiker %{username} wijzigen
|
||||||
|
members: Leden
|
||||||
|
user_created: Gebruiker %{uid} %{name} opgeslagen
|
||||||
|
member_card:
|
||||||
|
active_ago: Actief %{time} geleden
|
||||||
|
no_activity: Geen activiteit
|
||||||
|
new:
|
||||||
|
cancel: Annuleren
|
||||||
|
create_more_users_button: Een andere gebruiker aanmaken en toevoegen
|
||||||
|
new_user: Nieuwe gebruiker
|
||||||
|
user_created_add: Gebruiker %{uid} %{name} opgeslagen, maak nu de volgende aan
|
||||||
|
show:
|
||||||
|
account: Last transactions
|
||||||
|
accounts: Accounts
|
||||||
|
balance: 'Saldo:'
|
||||||
|
categories: Aangeboden services
|
||||||
|
created_at: 'Geregistreerd:'
|
||||||
|
data: Gebruikersgegevens
|
||||||
|
date: Datum
|
||||||
|
deleted_user: De gebruiker bestaat niet meer
|
||||||
|
from_to: Van/Tot
|
||||||
|
inactive: "(Inactief)"
|
||||||
|
inactive_user: De gebruiker is niet actief
|
||||||
|
invalid_format: Ongeldig formaat, kies een ".jpg", ".jpeg" of ".png".
|
||||||
|
phone:
|
||||||
|
one: Telefoon
|
||||||
|
other: Telefoons
|
||||||
|
post: Bericht
|
||||||
|
quantity: Aantal
|
||||||
|
reason: Reden
|
||||||
|
user_no: 'Gebruiker #:'
|
||||||
|
user_rows:
|
||||||
|
activate: Activeren
|
||||||
|
active_warning: U gaat de accountstatus van gebruiker %{user} wijzigen
|
||||||
|
cancel_warning: U gaat het account van gebruiker %{user} uit de Tijdbank verwijderen
|
||||||
|
deactivate: Deactiveren
|
||||||
|
delete_membership: Lidmaatschap verwijderen
|
||||||
|
manage_warning: U gaat de rechten van gebruiker %{user} wijzigen
|
||||||
|
sure_delete: Weet u zeker dat u uw lidmaatschap van %{organization_name}
|
||||||
|
wilt verwijderen?
|
||||||
|
views:
|
||||||
|
pagination:
|
||||||
|
first: Eerst
|
||||||
|
last: Laatste
|
||||||
|
next: Volgende
|
||||||
|
previous: Vorige
|
||||||
|
truncate: Afkorten
|
||||||
@ -2,6 +2,8 @@ pt-BR:
|
|||||||
active_admin:
|
active_admin:
|
||||||
users:
|
users:
|
||||||
organization: Banco de Tempo
|
organization: Banco de Tempo
|
||||||
|
confirm_user: Confirmar usuário
|
||||||
|
confirmed_notice: Usuário confirmado com sucesso
|
||||||
upload_csv: Arquivo
|
upload_csv: Arquivo
|
||||||
upload_from_csv: Importar CSV
|
upload_from_csv: Importar CSV
|
||||||
activerecord:
|
activerecord:
|
||||||
@ -70,6 +72,7 @@ pt-BR:
|
|||||||
registration_date: Data de ingresso
|
registration_date: Data de ingresso
|
||||||
registration_number: Código do usuário
|
registration_number: Código do usuário
|
||||||
superadmin: Administrador do sistema
|
superadmin: Administrador do sistema
|
||||||
|
confirm_immediately: Confirmar imediatamente
|
||||||
unconfirmed_email: E-mail sem confirmação
|
unconfirmed_email: E-mail sem confirmação
|
||||||
updated_at: Atualizado
|
updated_at: Atualizado
|
||||||
username: Nome
|
username: Nome
|
||||||
@ -357,6 +360,7 @@ pt-BR:
|
|||||||
gl: Galego
|
gl: Galego
|
||||||
pt-BR: Português
|
pt-BR: Português
|
||||||
ja:
|
ja:
|
||||||
|
nl-NL: Holandês
|
||||||
mailers_globals:
|
mailers_globals:
|
||||||
footer:
|
footer:
|
||||||
text: "%{organization_name} em"
|
text: "%{organization_name} em"
|
||||||
|
|||||||
@ -1,3 +1,8 @@
|
|||||||
|
if Rails.env.production? && ENV["SEED_DEMO_DATA"] != "true"
|
||||||
|
puts "Skipping seeds in production environment. Set SEED_DEMO_DATA=true to allow demo seeds."
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
Organization.find_or_create_by(name: "Banco de Tiempo Local")
|
Organization.find_or_create_by(name: "Banco de Tiempo Local")
|
||||||
Organization.find_or_create_by(name: "El otro Banco de Tiempo :)")
|
Organization.find_or_create_by(name: "El otro Banco de Tiempo :)")
|
||||||
|
|
||||||
|
|||||||
79
spec/admin/users_controller_spec.rb
Normal file
79
spec/admin/users_controller_spec.rb
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
RSpec.describe Admin::UsersController, type: :controller do
|
||||||
|
let(:organization) { Fabricate(:organization) }
|
||||||
|
let(:member) { Fabricate(:member, organization: organization) }
|
||||||
|
let(:user) { member.user }
|
||||||
|
|
||||||
|
before do
|
||||||
|
login(user)
|
||||||
|
allow(controller).to receive(:authenticate_superuser!).and_return(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "PUT #confirm" do
|
||||||
|
context "when the user is unconfirmed" do
|
||||||
|
let(:unconfirmed_user) { Fabricate(:user, confirmed_at: nil) }
|
||||||
|
|
||||||
|
it "confirms the user and redirects with notice" do
|
||||||
|
put :confirm, params: { id: unconfirmed_user.id }
|
||||||
|
|
||||||
|
expect(unconfirmed_user.reload.confirmed?).to be true
|
||||||
|
expect(response).to redirect_to(admin_user_path(unconfirmed_user))
|
||||||
|
expect(flash[:notice]).to eq(I18n.t("active_admin.users.confirmed_notice"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when the user is already confirmed" do
|
||||||
|
it "re-confirms and redirects with notice" do
|
||||||
|
put :confirm, params: { id: user.id }
|
||||||
|
|
||||||
|
expect(response).to redirect_to(admin_user_path(user))
|
||||||
|
expect(flash[:notice]).to eq(I18n.t("active_admin.users.confirmed_notice"))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "POST #create" do
|
||||||
|
let(:valid_params) do
|
||||||
|
{ username: "newuser", email: "new@example.com", locale: "en" }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with confirm_immediately checked" do
|
||||||
|
it "creates a confirmed user" do
|
||||||
|
post :create, params: { user: valid_params.merge(confirm_immediately: "1") }
|
||||||
|
|
||||||
|
created_user = User.find_by(email: "new@example.com")
|
||||||
|
expect(created_user).to be_confirmed
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "without confirm_immediately checked" do
|
||||||
|
it "creates an unconfirmed user" do
|
||||||
|
post :create, params: { user: valid_params.merge(confirm_immediately: "0") }
|
||||||
|
|
||||||
|
created_user = User.find_by(email: "new@example.com")
|
||||||
|
expect(created_user).not_to be_confirmed
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "PUT #update" do
|
||||||
|
context "when password is blank" do
|
||||||
|
it "does not change the existing password" do
|
||||||
|
original_encrypted = user.encrypted_password
|
||||||
|
|
||||||
|
put :update, params: { id: user.id, user: { password: "", password_confirmation: "" } }
|
||||||
|
|
||||||
|
expect(user.reload.encrypted_password).to eq(original_encrypted)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when password is provided" do
|
||||||
|
it "updates the password" do
|
||||||
|
original_encrypted = user.encrypted_password
|
||||||
|
|
||||||
|
put :update, params: { id: user.id, user: { password: "newpassword123", password_confirmation: "newpassword123" } }
|
||||||
|
|
||||||
|
expect(user.reload.encrypted_password).not_to eq(original_encrypted)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user