Add Decidim compose
This commit is contained in:
parent
102a556f0a
commit
c3c7efd946
22
.env
Normal file
22
.env
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
RAILS_ENV=production
|
||||||
|
RAILS_LOG_TO_STDOUT=1
|
||||||
|
|
||||||
|
POSTGRES_USER=decidim
|
||||||
|
POSTGRES_PASSWORD=decidim
|
||||||
|
POSTGRES_DB=decidim
|
||||||
|
POSTGRES_HOST=decidim-postgres
|
||||||
|
DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}/${POSTGRES_DB}
|
||||||
|
|
||||||
|
DECIDIM_ADMIN_USER=admin@example.com
|
||||||
|
DECIDIM_ADMIN_PASSWORD=decidim123456
|
||||||
|
SECRET_KEY_BASE=2ddf4d8ed8a6371d5e8b7917c8b13054934bde8f36de07b82cab6c5ee2bd67b68f186f44ffda5c2044658085ec271090784019b2394f21446d551fd70d72e711
|
||||||
|
|
||||||
|
SMTP_USERNAME=admin@example.com
|
||||||
|
SMTP_PASSWORD=
|
||||||
|
SMTP_ADDRESS=decidim-smtp
|
||||||
|
SMTP_DOMAIN=example.com
|
||||||
|
|
||||||
|
MAPS_API_KEY=
|
||||||
|
TWILIO_ACCOUNT_SID=
|
||||||
|
TWILIO_AUTH_TOKEN=
|
||||||
|
TWILIO_SENDER_NUMBER=
|
94
decidim/Dockerfile
Normal file
94
decidim/Dockerfile
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
FROM ruby:2.7-alpine3.13
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
# Install runtime dependencies
|
||||||
|
apk --no-cache add curl libbz2 libgcc libstdc++ libxml2 libxslt ncurses-libs openssl pcre readline s6 xz-libs && \
|
||||||
|
# Update system Ruby gems
|
||||||
|
echo -e 'install: --no-document\nupdate: --no-document' >/usr/local/etc/gemrc && \
|
||||||
|
gem update --system
|
||||||
|
|
||||||
|
# Nginx + passenger
|
||||||
|
RUN \
|
||||||
|
# Install build dependencies
|
||||||
|
apk --no-cache add --virtual .deps build-base curl-dev openssl-dev linux-headers pcre-dev && \
|
||||||
|
# Install passenger
|
||||||
|
gem install passenger && \
|
||||||
|
ln -s /usr/local/bundle/gems/passenger-* /usr/local/lib/passenger && \
|
||||||
|
# Create OS user
|
||||||
|
addgroup -S -g 8080 decidim && \
|
||||||
|
adduser -S -u 8080 -h /srv/decidim-app -s /sbin/nologin -G decidim -g decidim decidim && \
|
||||||
|
# Compile nginx
|
||||||
|
# Minimized version of /usr/local/bin/passenger-install-nginx-module
|
||||||
|
NGINX_VERSION=$(grep ' PREFERRED_NGINX_VERSION' /usr/local/lib/passenger/src/ruby_supportlib/phusion_passenger.rb | grep -Eo '([0-9\.]+)') && \
|
||||||
|
cd /tmp && \
|
||||||
|
wget https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \
|
||||||
|
tar xf nginx-*.tar.gz && \
|
||||||
|
cd nginx-* && \
|
||||||
|
./configure \
|
||||||
|
--prefix=/var/lib/nginx \
|
||||||
|
--sbin-path=/usr/sbin/nginx \
|
||||||
|
--conf-path=/etc/nginx/nginx.conf \
|
||||||
|
--pid-path=/run/nginx.pid \
|
||||||
|
--lock-path=/run/nginx.lock \
|
||||||
|
--user=decidim \
|
||||||
|
--group=decidim \
|
||||||
|
--with-threads \
|
||||||
|
--with-file-aio \
|
||||||
|
--with-http_ssl_module \
|
||||||
|
--with-http_v2_module \
|
||||||
|
--with-http_realip_module \
|
||||||
|
--with-http_gzip_static_module \
|
||||||
|
--with-http_stub_status_module \
|
||||||
|
--with-http_addition_module \
|
||||||
|
--without-http_fastcgi_module \
|
||||||
|
--without-http_memcached_module \
|
||||||
|
--without-http_scgi_module \
|
||||||
|
--without-http_uwsgi_module \
|
||||||
|
--with-cc-opt=-Wno-error \
|
||||||
|
--add-module=/usr/local/lib/passenger/src/nginx_module && \
|
||||||
|
make -j $(getconf _NPROCESSORS_ONLN) && \
|
||||||
|
make install && \
|
||||||
|
rm -f /etc/nginx/*.default && \
|
||||||
|
# Cleanup
|
||||||
|
apk --no-cache del .deps && \
|
||||||
|
rm -rf /tmp/*
|
||||||
|
|
||||||
|
# Decidim
|
||||||
|
ENV RAILS_ENV production
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
# Install runtime dependencies
|
||||||
|
apk --no-cache add imagemagick libpq nodejs procps tzdata && \
|
||||||
|
# Install build dependencies
|
||||||
|
apk --no-cache add --virtual .deps build-base git libxml2-dev libxslt-dev postgresql-dev zlib-dev && \
|
||||||
|
# Install Decidim
|
||||||
|
bundle config build.nokogiri --use-system-libraries && \
|
||||||
|
gem install decidim -v 0.23.6 && \
|
||||||
|
cd /srv && \
|
||||||
|
decidim decidim-app
|
||||||
|
|
||||||
|
COPY image.d /
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
# Install runtime gems and plugins
|
||||||
|
cd /srv/decidim-app && \
|
||||||
|
bundle install && \
|
||||||
|
# Setup delayed job for mail sending
|
||||||
|
bin/rails generate delayed_job:active_record && \
|
||||||
|
# Precompile static assets
|
||||||
|
bin/rails assets:precompile && \
|
||||||
|
# Remove database migrations (will be recreated in entrypoint.sh) and temp cache
|
||||||
|
rm /srv/decidim-app/db/migrate/* && \
|
||||||
|
rm -rf /srv/decidim-app/tmp/cache/* && \
|
||||||
|
# Create uploads dir
|
||||||
|
mkdir /srv/decidim-app/public/uploads && \
|
||||||
|
chmod g+s /srv/decidim-app/public/uploads && \
|
||||||
|
# Change ownership
|
||||||
|
chown -R decidim:decidim /srv/decidim-app && \
|
||||||
|
# Cleanup
|
||||||
|
apk --no-cache del .deps && \
|
||||||
|
rm -rf /root/.bundle /root/.gem
|
||||||
|
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
EXPOSE 8080
|
||||||
|
VOLUME ["/srv/decidim-app/db/migrate", "/srv/decidim-app/storage", "/srv/decidim-app/public/uploads"]
|
50
decidim/image.d/entrypoint.sh
Executable file
50
decidim/image.d/entrypoint.sh
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ "$*" != "" ]; then
|
||||||
|
exec $@
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Starting Decidim..."
|
||||||
|
|
||||||
|
# Set passenger environment
|
||||||
|
export RAILS_ENV=${RAILS_ENV:-production}
|
||||||
|
echo "passenger_app_env ${RAILS_ENV};" >/etc/nginx/rails_env.conf
|
||||||
|
|
||||||
|
# Upgrade database
|
||||||
|
cd /srv/decidim-app
|
||||||
|
s6-setuidgid decidim sh -c '
|
||||||
|
bin/rails decidim:upgrade
|
||||||
|
bin/rails generate delayed_job:active_record >/dev/null 2>&1
|
||||||
|
bin/rails decidim_conferences:install:migrations
|
||||||
|
bin/rails decidim_consultations:install:migrations
|
||||||
|
bin/rails decidim_initiatives:install:migrations
|
||||||
|
# bin/rails decidim_templates:install:migrations
|
||||||
|
bin/rails decidim_calendar:install:migrations
|
||||||
|
bin/rails decidim_comparative_stats:install:migrations
|
||||||
|
bin/rails decidim_decidim_awesome:install:migrations
|
||||||
|
# bin/rails decidim_favorites:install:migrations
|
||||||
|
# bin/rails decidim_feedback:install:migrations
|
||||||
|
# bin/rails decidim_ideas:install:migrations
|
||||||
|
# bin/rails decidim_ldap:install:migrations
|
||||||
|
bin/rails decidim_navbar_links:install:migrations
|
||||||
|
bin/rails decidim_navigation_maps:install:migrations
|
||||||
|
bin/rails decidim_time_tracker:install:migrations
|
||||||
|
bin/rails redirector_engine:install:migrations
|
||||||
|
bin/rails decidim_url_aliases:install:migrations
|
||||||
|
bin/rails db:migrate
|
||||||
|
'
|
||||||
|
|
||||||
|
# Create or update superadmin account
|
||||||
|
cat <<EOF | bin/rails console
|
||||||
|
Decidim::System::Admin.find_or_initialize_by(id: 1).update!(
|
||||||
|
email: ENV["DECIDIM_ADMIN_USER"],
|
||||||
|
password: ENV["DECIDIM_ADMIN_PASSWORD"],
|
||||||
|
password_confirmation: ENV["DECIDIM_ADMIN_PASSWORD"]
|
||||||
|
)
|
||||||
|
EOF
|
||||||
|
unset DECIDIM_ADMIN_USER
|
||||||
|
unset DECIDIM_ADMIN_PASSWORD
|
||||||
|
|
||||||
|
# Exec into s6 supervisor
|
||||||
|
exec /bin/s6-svscan /etc/services.d
|
1
decidim/image.d/etc/crontabs/decidim
Executable file
1
decidim/image.d/etc/crontabs/decidim
Executable file
@ -0,0 +1 @@
|
|||||||
|
*/5 * * * * [ -s /srv/decidim-app/tmp/pids/delayed_job.pid ] || /srv/decidim-app/bin/delayed_job start
|
39
decidim/image.d/etc/nginx/nginx.conf
Normal file
39
decidim/image.d/etc/nginx/nginx.conf
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
user decidim;
|
||||||
|
pid /run/nginx.pid;
|
||||||
|
worker_processes 1;
|
||||||
|
error_log /dev/stderr warn;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
access_log off;
|
||||||
|
server_tokens off;
|
||||||
|
client_max_body_size 100m;
|
||||||
|
sendfile on;
|
||||||
|
tcp_nodelay on;
|
||||||
|
send_timeout 300;
|
||||||
|
|
||||||
|
passenger_root /usr/local/lib/passenger;
|
||||||
|
passenger_ruby /usr/local/bin/ruby;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 8080;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
set $passenger_host $http_host;
|
||||||
|
if ($http_x_forwarded_host) {
|
||||||
|
set $passenger_host $http_x_forwarded_host;
|
||||||
|
}
|
||||||
|
|
||||||
|
passenger_enabled on;
|
||||||
|
passenger_set_header Host $passenger_host;
|
||||||
|
include /etc/nginx/rails_env.conf;
|
||||||
|
|
||||||
|
root /srv/decidim-app/public;
|
||||||
|
}
|
||||||
|
}
|
4
decidim/image.d/etc/services.d/.s6-svscan/finish
Executable file
4
decidim/image.d/etc/services.d/.s6-svscan/finish
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/execlineb -P
|
||||||
|
|
||||||
|
foreground { s6-svwait -d -t 3000 cron }
|
||||||
|
foreground { s6-svwait -d -t 3000 nginx }
|
4
decidim/image.d/etc/services.d/cron/run
Executable file
4
decidim/image.d/etc/services.d/cron/run
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/execlineb -P
|
||||||
|
|
||||||
|
fdmove -c 2 1
|
||||||
|
crond -f -d 8
|
3
decidim/image.d/etc/services.d/nginx/run
Executable file
3
decidim/image.d/etc/services.d/nginx/run
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/execlineb -P
|
||||||
|
|
||||||
|
nginx -g "daemon off;"
|
66
decidim/image.d/srv/decidim-app/Gemfile
Normal file
66
decidim/image.d/srv/decidim-app/Gemfile
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
ruby RUBY_VERSION
|
||||||
|
|
||||||
|
gem "decidim", "0.23.6"
|
||||||
|
gem "decidim-conferences", "0.23.6"
|
||||||
|
gem "decidim-consultations", "0.23.6"
|
||||||
|
gem "decidim-initiatives", "0.23.6"
|
||||||
|
# gem "decidim-templates", "0.23.6"
|
||||||
|
|
||||||
|
gem "bootsnap", "~> 1.3"
|
||||||
|
|
||||||
|
gem "puma", ">= 4.3.5"
|
||||||
|
gem "uglifier", "~> 4.1"
|
||||||
|
|
||||||
|
gem "faker", "~> 1.9"
|
||||||
|
|
||||||
|
gem "wicked_pdf", "~> 1.4"
|
||||||
|
|
||||||
|
group :development, :test do
|
||||||
|
gem "byebug", "~> 11.0", platform: :mri
|
||||||
|
|
||||||
|
gem "decidim-dev", "0.23.6"
|
||||||
|
end
|
||||||
|
|
||||||
|
group :development do
|
||||||
|
gem "letter_opener_web", "~> 1.3"
|
||||||
|
gem "listen", "~> 3.1"
|
||||||
|
gem "spring", "~> 2.0"
|
||||||
|
gem "spring-watcher-listen", "~> 2.0"
|
||||||
|
gem "web-console", "~> 3.5"
|
||||||
|
end
|
||||||
|
|
||||||
|
group :production do
|
||||||
|
gem "passenger"
|
||||||
|
gem "delayed_job_active_record"
|
||||||
|
gem "daemons"
|
||||||
|
gem "twilio-ruby"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Modules
|
||||||
|
gem "omniauth-decidim", github: "decidim/omniauth-decidim"
|
||||||
|
# gem "decidim-access_requests", github: "mainio/decidim-module-access_requests" # Supported until 0.22.0
|
||||||
|
# gem "decidim-action_delegator", github: "coopdevs/decidim-module-action_delegator" # Supported until 0.23.2
|
||||||
|
# gem "decidim-antivirus", github: "mainio/decidim-module-antivirus" # Supported until 0.22.0
|
||||||
|
# gem "decidim-budgets_enhanced", github: "OpenSourcePolitics/decidim-module-budgets_enhanced", branch: "0.22-dev" # Supported until 0.19.0, development branch exists up to 0.22.0
|
||||||
|
gem "decidim-calendar", github: "alabs/decidim-module-calendar"
|
||||||
|
gem "decidim-comparative_stats", github: "Platoniq/decidim-module-comparative_stats"
|
||||||
|
# gem "decidim-cookies", github: "OpenSourcePolitics/decidim-module_cookies" # Supported until 0.21.0
|
||||||
|
gem "decidim-decidim_awesome", github: "Platoniq/decidim-module-decidim_awesome"
|
||||||
|
# gem "decidim-department_admin", github: "gencat/decidim-department-admin" # Supported until 0.22.0
|
||||||
|
gem "decidim-direct_verifications", github: "Platoniq/decidim-verifications-direct_verifications"
|
||||||
|
# gem "decidim-favorites", github: "mainio/decidim-module-favorites" # Required by ideas, plans
|
||||||
|
# gem "decidim-feedback", github: "mainio/decidim-module-feedback" # Required by ideas
|
||||||
|
# gem "decidim-ideas", github: "mainio/decidim-module-ideas" # Supported until 0.23.0, has graphql dependency problems
|
||||||
|
# gem "decidim-ldap", github: "diputacioBCN/decidim-diba", glob: "decidim-ldap/decidim-ldap.gemspec", Supported until 0.18.0, installable until 0.23.1
|
||||||
|
gem "decidim-navbar_links", github: "OpenSourcePolitics/decidim-module-navbar_links", branch: "0.23-stable"
|
||||||
|
gem "decidim-navigation_maps", github: "Platoniq/decidim-module-navigation_maps", ref: "5199551350d05a24c439b4c6dc5946f12eafaa30"
|
||||||
|
# gem "decidim-plans", github: "mainio/decidim-module-plans" # Supported until 0.22.0
|
||||||
|
# gem "decidim-process_groups_content_block", github: "mainio/decidim-module-process_groups_content_block" # Supported until 0.22.0
|
||||||
|
# gem "decidim-term_customizer", github: "mainio/decidim-module-term_customizer" # Supported until 0.22.0
|
||||||
|
gem "decidim-time_tracker", github: "Platoniq/decidim-module-time_tracker", branch: "main"
|
||||||
|
# gem "decidim-unique_identity", github: "OpenSourcePolitics/decidim-module-unique-identity" # Supported until 0.18.0
|
||||||
|
gem "decidim-url_aliases", github: "OpenSourcePolitics/decidim-urlaliases"
|
@ -0,0 +1,104 @@
|
|||||||
|
Rails.application.configure do
|
||||||
|
# Settings specified here will take precedence over those in config/application.rb.
|
||||||
|
|
||||||
|
# Code is not reloaded between requests.
|
||||||
|
config.cache_classes = true
|
||||||
|
|
||||||
|
# Eager load code on boot. This eager loads most of Rails and
|
||||||
|
# your application in memory, allowing both threaded web servers
|
||||||
|
# and those relying on copy on write to perform better.
|
||||||
|
# Rake tasks automatically ignore this option for performance.
|
||||||
|
config.eager_load = true
|
||||||
|
|
||||||
|
# Full error reports are disabled and caching is turned on.
|
||||||
|
config.consider_all_requests_local = false
|
||||||
|
config.action_controller.perform_caching = true
|
||||||
|
|
||||||
|
# Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
|
||||||
|
# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
|
||||||
|
# config.require_master_key = true
|
||||||
|
|
||||||
|
# Disable serving static files from the `/public` folder by default since
|
||||||
|
# Apache or NGINX already handles this.
|
||||||
|
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
|
||||||
|
|
||||||
|
# Compress JavaScripts and CSS.
|
||||||
|
config.assets.js_compressor = Uglifier.new(:harmony => true)
|
||||||
|
# config.assets.css_compressor = :sass
|
||||||
|
|
||||||
|
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
||||||
|
config.assets.compile = false
|
||||||
|
|
||||||
|
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
|
||||||
|
|
||||||
|
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
||||||
|
# config.action_controller.asset_host = 'http://assets.example.com'
|
||||||
|
|
||||||
|
# Specifies the header that your server uses for sending files.
|
||||||
|
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
|
||||||
|
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
|
||||||
|
|
||||||
|
# Store uploaded files on the local file system (see config/storage.yml for options)
|
||||||
|
config.active_storage.service = :local
|
||||||
|
|
||||||
|
# Mount Action Cable outside main process or domain
|
||||||
|
# config.action_cable.mount_path = nil
|
||||||
|
# config.action_cable.url = 'wss://example.com/cable'
|
||||||
|
# config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
|
||||||
|
|
||||||
|
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
||||||
|
config.force_ssl = true
|
||||||
|
|
||||||
|
# Use the lowest log level to ensure availability of diagnostic information
|
||||||
|
# when problems arise.
|
||||||
|
config.log_level = :info
|
||||||
|
|
||||||
|
# Prepend all log lines with the following tags.
|
||||||
|
config.log_tags = [ :request_id ]
|
||||||
|
|
||||||
|
# Use a different cache store in production.
|
||||||
|
# config.cache_store = :mem_cache_store
|
||||||
|
|
||||||
|
# Use a real queuing backend for Active Job (and separate queues per environment)
|
||||||
|
# config.active_job.queue_adapter = :resque
|
||||||
|
# config.active_job.queue_name_prefix = "decidim_#{Rails.env}"
|
||||||
|
|
||||||
|
config.action_mailer.perform_caching = false
|
||||||
|
|
||||||
|
# Ignore bad email addresses and do not raise email delivery errors.
|
||||||
|
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
|
||||||
|
# config.action_mailer.raise_delivery_errors = false
|
||||||
|
|
||||||
|
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
||||||
|
# the I18n.default_locale when a translation cannot be found).
|
||||||
|
config.i18n.fallbacks = true
|
||||||
|
|
||||||
|
# Send deprecation notices to registered listeners.
|
||||||
|
config.active_support.deprecation = :notify
|
||||||
|
|
||||||
|
# Use default logging formatter so that PID and timestamp are not suppressed.
|
||||||
|
config.log_formatter = ::Logger::Formatter.new
|
||||||
|
config.action_mailer.smtp_settings = {
|
||||||
|
:address => Rails.application.secrets.smtp_address,
|
||||||
|
:port => Rails.application.secrets.smtp_port,
|
||||||
|
:authentication => Rails.application.secrets.smtp_authentication,
|
||||||
|
:user_name => Rails.application.secrets.smtp_username,
|
||||||
|
:password => Rails.application.secrets.smtp_password,
|
||||||
|
:domain => Rails.application.secrets.smtp_domain,
|
||||||
|
:enable_starttls_auto => Rails.application.secrets.smtp_starttls_auto,
|
||||||
|
:openssl_verify_mode => 'none'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Use a different logger for distributed setups.
|
||||||
|
# require 'syslog/logger'
|
||||||
|
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
|
||||||
|
|
||||||
|
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
||||||
|
logger = ActiveSupport::Logger.new(STDOUT)
|
||||||
|
logger.formatter = config.log_formatter
|
||||||
|
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
||||||
|
end
|
||||||
|
|
||||||
|
# Do not dump schema after migrations.
|
||||||
|
config.active_record.dump_schema_after_migration = false
|
||||||
|
end
|
314
decidim/image.d/srv/decidim-app/config/initializers/decidim.rb
Normal file
314
decidim/image.d/srv/decidim-app/config/initializers/decidim.rb
Normal file
@ -0,0 +1,314 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "twilio-ruby"
|
||||||
|
|
||||||
|
Decidim.configure do |config|
|
||||||
|
# The name of the application
|
||||||
|
config.application_name = "Decidim"
|
||||||
|
|
||||||
|
# The email that will be used as sender in all emails from Decidim
|
||||||
|
config.mailer_sender = "admin@example.com"
|
||||||
|
|
||||||
|
# Sets the list of available locales for the whole application.
|
||||||
|
#
|
||||||
|
# When an organization is created through the System area, system admins will
|
||||||
|
# be able to choose the available languages for that organization. That list
|
||||||
|
# of languages will be equal or a subset of the list in this file.
|
||||||
|
config.available_locales = [:cs, :sk, :en, :de, :fr, :es]
|
||||||
|
|
||||||
|
# Sets the default locale for new organizations. When creating a new
|
||||||
|
# organization from the System area, system admins will be able to overwrite
|
||||||
|
# this value for that specific organization.
|
||||||
|
config.default_locale = :cs
|
||||||
|
|
||||||
|
# Restrict access to the system part with an authorized ip list.
|
||||||
|
# You can use a single ip like ("1.2.3.4"), or an ip subnet like ("1.2.3.4/24")
|
||||||
|
# You may specify multiple ip in an array ["1.2.3.4", "1.2.3.4/24"]
|
||||||
|
# config.system_accesslist_ips = ["127.0.0.1"]
|
||||||
|
|
||||||
|
# Defines a list of custom content processors. They are used to parse and
|
||||||
|
# render specific tags inside some user-provided content. Check the docs for
|
||||||
|
# more info.
|
||||||
|
# config.content_processors = []
|
||||||
|
|
||||||
|
# Whether SSL should be enabled or not.
|
||||||
|
# config.force_ssl = true
|
||||||
|
|
||||||
|
# Map and Geocoder configuration
|
||||||
|
#
|
||||||
|
# == HERE Maps ==
|
||||||
|
if !Rails.application.secrets.maps[:api_key].to_s.empty?
|
||||||
|
config.maps = {
|
||||||
|
provider: :here,
|
||||||
|
api_key: Rails.application.secrets.maps[:api_key],
|
||||||
|
static: { url: "https://image.maps.ls.hereapi.com/mia/1.6/mapview" }
|
||||||
|
}
|
||||||
|
end
|
||||||
|
#
|
||||||
|
# == OpenStreetMap (OSM) services ==
|
||||||
|
# To use the OSM map service providers, you will need a service provider for
|
||||||
|
# the following map servers or host all of them yourself:
|
||||||
|
# - A tile server for the dynamic maps
|
||||||
|
# (https://wiki.openstreetmap.org/wiki/Tile_servers)
|
||||||
|
# - A Nominatim geocoding server for the geocoding functionality
|
||||||
|
# (https://wiki.openstreetmap.org/wiki/Nominatim)
|
||||||
|
# - A static map server for static map images
|
||||||
|
# (https://github.com/jperelli/osm-static-maps)
|
||||||
|
#
|
||||||
|
# When used, please read carefully the terms of service for your service
|
||||||
|
# provider.
|
||||||
|
#
|
||||||
|
# config.maps = {
|
||||||
|
# provider: :osm,
|
||||||
|
# api_key: Rails.application.secrets.maps[:api_key],
|
||||||
|
# dynamic: {
|
||||||
|
# tile_layer: {
|
||||||
|
# url: "https://tiles.example.org/{z}/{x}/{y}.png?key={apiKey}&{foo}",
|
||||||
|
# api_key: true,
|
||||||
|
# foo: "bar=baz",
|
||||||
|
# attribution: %(
|
||||||
|
# <a href="https://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors
|
||||||
|
# ).strip
|
||||||
|
# # Translatable attribution:
|
||||||
|
# # attribution: -> { I18n.t("tile_layer_attribution") }
|
||||||
|
# }
|
||||||
|
# },
|
||||||
|
# static: { url: "https://staticmap.example.org/" },
|
||||||
|
# geocoding: { host: "nominatim.example.org", use_https: true }
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# == Combination (OpenStreetMap default + HERE Maps dynamic map tiles) ==
|
||||||
|
# config.maps = {
|
||||||
|
# provider: :osm,
|
||||||
|
# api_key: Rails.application.secrets.maps[:api_key],
|
||||||
|
# dynamic: {
|
||||||
|
# provider: :here,
|
||||||
|
# api_key: Rails.application.secrets.maps[:here_api_key]
|
||||||
|
# },
|
||||||
|
# static: { url: "https://staticmap.example.org/" },
|
||||||
|
# geocoding: { host: "nominatim.example.org", use_https: true }
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Geocoder configurations if you want to customize the default geocoding
|
||||||
|
# settings. The maps configuration will manage which geocoding service to use,
|
||||||
|
# so that does not need any additional configuration here. Use this only for
|
||||||
|
# the global geocoder preferences.
|
||||||
|
# config.geocoder = {
|
||||||
|
# # geocoding service request timeout, in seconds (default 3):
|
||||||
|
# timeout: 5,
|
||||||
|
# # set default units to kilometers:
|
||||||
|
# units: :km,
|
||||||
|
# # caching (see https://github.com/alexreisner/geocoder#caching for details):
|
||||||
|
# cache: Redis.new,
|
||||||
|
# cache_prefix: "..."
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Custom resource reference generator method. Check the docs for more info.
|
||||||
|
# config.reference_generator = lambda do |resource, component|
|
||||||
|
# # Implement your custom method to generate resources references
|
||||||
|
# "1234-#{resource.id}"
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Currency unit
|
||||||
|
config.currency_unit = "Kč"
|
||||||
|
|
||||||
|
# Defines the quality of image uploads after processing. Image uploads are
|
||||||
|
# processed by Decidim, this value helps reduce the size of the files.
|
||||||
|
# config.image_uploader_quality = 80
|
||||||
|
|
||||||
|
# The number of reports which a resource can receive before hiding it
|
||||||
|
# config.max_reports_before_hiding = 3
|
||||||
|
|
||||||
|
# Custom HTML Header snippets
|
||||||
|
#
|
||||||
|
# The most common use is to integrate third-party services that require some
|
||||||
|
# extra JavaScript or CSS. Also, you can use it to add extra meta tags to the
|
||||||
|
# HTML. Note that this will only be rendered in public pages, not in the admin
|
||||||
|
# section.
|
||||||
|
#
|
||||||
|
# Before enabling this you should ensure that any tracking that might be done
|
||||||
|
# is in accordance with the rules and regulations that apply to your
|
||||||
|
# environment and usage scenarios. This component also comes with the risk
|
||||||
|
# that an organization's administrator injects malicious scripts to spy on or
|
||||||
|
# take over user accounts.
|
||||||
|
#
|
||||||
|
config.enable_html_header_snippets = false
|
||||||
|
|
||||||
|
# Allow organizations admins to track newsletter links.
|
||||||
|
# config.track_newsletter_links = true
|
||||||
|
|
||||||
|
# Amount of time that the data portability files will be available in the server.
|
||||||
|
# config.data_portability_expiry_time = 7.days
|
||||||
|
|
||||||
|
# Max requests in a time period to prevent DoS attacks. Only applied on production.
|
||||||
|
# config.throttling_max_requests = 100
|
||||||
|
|
||||||
|
# Time window in which the throttling is applied.
|
||||||
|
# config.throttling_period = 1.minute
|
||||||
|
|
||||||
|
# Time window were users can access the website even if their email is not confirmed.
|
||||||
|
# config.unconfirmed_access_for = 2.days
|
||||||
|
|
||||||
|
# A base path for the uploads. If set, make sure it ends in a slash.
|
||||||
|
# Uploads will be set to `<base_path>/uploads/`. This can be useful if you
|
||||||
|
# want to use the same uploads place for both staging and production
|
||||||
|
# environments, but in different folders.
|
||||||
|
#
|
||||||
|
# If not set, it will be ignored.
|
||||||
|
# config.base_uploads_path = nil
|
||||||
|
|
||||||
|
# SMS gateway configuration
|
||||||
|
#
|
||||||
|
# If you want to verify your users by sending a verification code via
|
||||||
|
# SMS you need to provide a SMS gateway service class.
|
||||||
|
#
|
||||||
|
# An example class would be something like:
|
||||||
|
#
|
||||||
|
# class MySMSGatewayService
|
||||||
|
# attr_reader :mobile_phone_number, :code
|
||||||
|
#
|
||||||
|
# def initialize(mobile_phone_number, code)
|
||||||
|
# @mobile_phone_number = mobile_phone_number
|
||||||
|
# @code = code
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# def deliver_code
|
||||||
|
# # Actual code to deliver the code
|
||||||
|
# true
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# config.sms_gateway_service = "MySMSGatewayService"
|
||||||
|
|
||||||
|
class TwilioSMSGatewayService
|
||||||
|
attr_reader :mobile_phone_number, :code
|
||||||
|
|
||||||
|
def initialize(mobile_phone_number, code)
|
||||||
|
@mobile_phone_number = mobile_phone_number
|
||||||
|
@code = code
|
||||||
|
end
|
||||||
|
|
||||||
|
def deliver_code
|
||||||
|
Rails.logger.debug("Twilio SMS gateway service, verification code is: #{code}, should have been delivered to #{mobile_phone_number}")
|
||||||
|
client.messages.create(
|
||||||
|
from: Rails.application.secrets.twilio[:sender_number],
|
||||||
|
to: mobile_phone_number,
|
||||||
|
body: code
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def client
|
||||||
|
::Twilio::REST::Client.new Rails.application.secrets.twilio[:account_sid], Rails.application.secrets.twilio[:auth_token]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if !Rails.application.secrets.maps[:account_sid].to_s.empty?
|
||||||
|
config.sms_gateway_service = "TwilioSMSGatewayService"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Timestamp service configuration
|
||||||
|
#
|
||||||
|
# Provide a class to generate a timestamp for a document. The instances of
|
||||||
|
# this class are initialized with a hash containing the :document key with
|
||||||
|
# the document to be timestamped as value. The istances respond to a
|
||||||
|
# timestamp public method with the timestamp
|
||||||
|
#
|
||||||
|
# An example class would be something like:
|
||||||
|
#
|
||||||
|
# class MyTimestampService
|
||||||
|
# attr_accessor :document
|
||||||
|
#
|
||||||
|
# def initialize(args = {})
|
||||||
|
# @document = args.fetch(:document)
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# def timestamp
|
||||||
|
# # Code to generate timestamp
|
||||||
|
# "My timestamp"
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# config.timestamp_service = "MyTimestampService"
|
||||||
|
|
||||||
|
# PDF signature service configuration
|
||||||
|
#
|
||||||
|
# Provide a class to process a pdf and return the document including a
|
||||||
|
# digital signature. The instances of this class are initialized with a hash
|
||||||
|
# containing the :pdf key with the pdf file content as value. The instances
|
||||||
|
# respond to a signed_pdf method containing the pdf with the signature
|
||||||
|
#
|
||||||
|
# An example class would be something like:
|
||||||
|
#
|
||||||
|
# class MyPDFSignatureService
|
||||||
|
# attr_accessor :pdf
|
||||||
|
#
|
||||||
|
# def initialize(args = {})
|
||||||
|
# @pdf = args.fetch(:pdf)
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# def signed_pdf
|
||||||
|
# # Code to return the pdf signed
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# config.pdf_signature_service = "MyPDFSignatureService"
|
||||||
|
|
||||||
|
# Etherpad configuration
|
||||||
|
#
|
||||||
|
# Only needed if you want to have Etherpad integration with Decidim. See
|
||||||
|
# Decidim docs at docs/services/etherpad.md in order to set it up.
|
||||||
|
#
|
||||||
|
# config.etherpad = {
|
||||||
|
# server: Rails.application.secrets.etherpad[:server],
|
||||||
|
# api_key: Rails.application.secrets.etherpad[:api_key],
|
||||||
|
# api_version: Rails.application.secrets.etherpad[:api_version]
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Sets Decidim::Exporters::CSV's default column separator
|
||||||
|
# config.default_csv_col_sep = ";"
|
||||||
|
|
||||||
|
# The list of roles a user can have, not considering the space-specific roles.
|
||||||
|
# config.user_roles = %w(admin user_manager)
|
||||||
|
|
||||||
|
# The list of visibility options for amendments. An Array of Strings that
|
||||||
|
# serve both as locale keys and values to construct the input collection in
|
||||||
|
# Decidim::Amendment::VisibilityStepSetting::options.
|
||||||
|
#
|
||||||
|
# This collection is used in Decidim::Admin::SettingsHelper to generate a
|
||||||
|
# radio buttons collection input field form for a Decidim::Component
|
||||||
|
# step setting :amendments_visibility.
|
||||||
|
# config.amendments_visibility_options = %w(all participants)
|
||||||
|
|
||||||
|
# Machine Translation Configuration
|
||||||
|
#
|
||||||
|
# Enable machine translations
|
||||||
|
config.enable_machine_translations = false
|
||||||
|
#
|
||||||
|
# If you want to enable machine translation you can create your own service
|
||||||
|
# to interact with third party service to translate the user content.
|
||||||
|
#
|
||||||
|
# An example class would be something like:
|
||||||
|
#
|
||||||
|
# class MyTranslationService
|
||||||
|
# attr_reader :text, :original_locale, :target_locale
|
||||||
|
#
|
||||||
|
# def initialize(text, original_locale, target_locale)
|
||||||
|
# @text = text
|
||||||
|
# @original_locale = original_locale
|
||||||
|
# @target_locale = target_locale
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# def translate
|
||||||
|
# # Actual code to translate the text
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
#
|
||||||
|
# config.machine_translation_service = "MyTranslationService"
|
||||||
|
|
||||||
|
# Defines the name of the cookie used to check if the user allows Decidim to
|
||||||
|
# set cookies.
|
||||||
|
# config.consent_cookie_name = "decidim-cc"
|
||||||
|
end
|
||||||
|
|
||||||
|
Rails.application.config.i18n.available_locales = Decidim.available_locales
|
||||||
|
Rails.application.config.i18n.default_locale = Decidim.default_locale
|
993
decidim/image.d/srv/decidim-app/config/locales/cs.yml
Normal file
993
decidim/image.d/srv/decidim-app/config/locales/cs.yml
Normal file
@ -0,0 +1,993 @@
|
|||||||
|
cs:
|
||||||
|
activemodel:
|
||||||
|
attributes:
|
||||||
|
activity:
|
||||||
|
active: Active
|
||||||
|
description: Popis
|
||||||
|
end_date: Datum ukončení
|
||||||
|
max_minutes_per_day: Maximum minut na den
|
||||||
|
requests_start_at: Požadavky začínají v
|
||||||
|
start_date: Datum zahájení
|
||||||
|
constraint:
|
||||||
|
component_id: Komponenta
|
||||||
|
subject_id: Participativní prostor
|
||||||
|
subject_manifest: Typ participativního prostoru
|
||||||
|
milestone:
|
||||||
|
title: Co jste udělal?
|
||||||
|
task:
|
||||||
|
name: Jméno
|
||||||
|
translation:
|
||||||
|
key: Překladový klíč
|
||||||
|
value: Přizpůsobený termín
|
||||||
|
translation_set:
|
||||||
|
name: Název
|
||||||
|
translations_import:
|
||||||
|
file: Import souboru
|
||||||
|
errors:
|
||||||
|
models:
|
||||||
|
milestone:
|
||||||
|
attributes:
|
||||||
|
attachment:
|
||||||
|
needs_to_be_reattached: Vyžaduje být znovu připojen
|
||||||
|
redirect_rule:
|
||||||
|
attributes:
|
||||||
|
destination:
|
||||||
|
not_recognized: musí být aplikací uznány.
|
||||||
|
source:
|
||||||
|
reserved: nemělo by být vyhrazené slovo.
|
||||||
|
time_event:
|
||||||
|
attributes:
|
||||||
|
activity:
|
||||||
|
finished: Aktivita již byla ukončena
|
||||||
|
inactive: Aktivita není aktivní
|
||||||
|
no_time_available: Uživatel dosáhl maximálního množství času dostupného
|
||||||
|
pro den
|
||||||
|
not_started: Aktivita zatím nezačala
|
||||||
|
assignation:
|
||||||
|
unassigned: Uživatel není přiřazen k úkolu
|
||||||
|
start:
|
||||||
|
date_format: Čas začátku není datum
|
||||||
|
stop:
|
||||||
|
date_format: Čas ukončení není datum
|
||||||
|
stop_before_start: Ukončení je před začátkem
|
||||||
|
translations_import:
|
||||||
|
attributes:
|
||||||
|
file:
|
||||||
|
invalid_mime_type: 'Neplatný typ souboru. Přijímané formáty jsou: %{valid_mime_types}'
|
||||||
|
activerecord:
|
||||||
|
attributes:
|
||||||
|
decidim/ldap_configuration:
|
||||||
|
authentication_query: Authentifikační query
|
||||||
|
dn: Základní doménové jméno
|
||||||
|
email_field: E-mail
|
||||||
|
host: Host
|
||||||
|
name_field: Jméno
|
||||||
|
organization: Organizace
|
||||||
|
password_field: Heslo
|
||||||
|
port: Port
|
||||||
|
username_field: Uživatelské jméno
|
||||||
|
models:
|
||||||
|
decidim:
|
||||||
|
ldap_configuration: LDAP konfigurace
|
||||||
|
decidim/calendar:
|
||||||
|
one: Kalendář
|
||||||
|
other: Kalendáře
|
||||||
|
decidim:
|
||||||
|
admin:
|
||||||
|
actions:
|
||||||
|
add: Přidat
|
||||||
|
confirm_destroy: Potvrdit smazání
|
||||||
|
destroy: Smazat
|
||||||
|
edit: Upravit
|
||||||
|
filters:
|
||||||
|
activity_id_eq:
|
||||||
|
label: Aktivita
|
||||||
|
activity_task_id_eq:
|
||||||
|
label: Úloha
|
||||||
|
search_placeholder:
|
||||||
|
user_name_or_user_nickname_or_user_email_cont: Vyhledejte uživatelské jméno,
|
||||||
|
přezdívku nebo e-mail
|
||||||
|
menu:
|
||||||
|
appearance: Vzhled
|
||||||
|
area_types: Typy oblastí
|
||||||
|
areas: Oblasti
|
||||||
|
configuration: Konfigurace
|
||||||
|
help_sections: Sekce nápovědy
|
||||||
|
homepage: Domovská stránka
|
||||||
|
navbar_links: Odkazy navigační lišty
|
||||||
|
scope_types: Typy oblastí
|
||||||
|
scopes: Oblasti
|
||||||
|
models:
|
||||||
|
assembly:
|
||||||
|
fields:
|
||||||
|
assembly_role: Role ve shromáždění
|
||||||
|
department: Oddělení / oblast
|
||||||
|
department_role: Role oddělení
|
||||||
|
navbar_link:
|
||||||
|
fields:
|
||||||
|
link: Odkaz
|
||||||
|
title: Nadpis
|
||||||
|
weight: Důležitos
|
||||||
|
participatory_process:
|
||||||
|
fields:
|
||||||
|
department: Oddělení / oblast
|
||||||
|
department_role: Role oddělení
|
||||||
|
process_role: Role procesu
|
||||||
|
user:
|
||||||
|
fields:
|
||||||
|
administrated_spaces: Spravované prostory
|
||||||
|
assembly_type: Shromáždění
|
||||||
|
created_at: Vytvořeno v
|
||||||
|
department: Oddělení / oblast
|
||||||
|
private: Soukromí
|
||||||
|
process_type: Proces
|
||||||
|
published: Publikováno
|
||||||
|
roles:
|
||||||
|
assembly_admin: Správce shromáždění
|
||||||
|
department_admin: Správce oddělení
|
||||||
|
participant: Účastník
|
||||||
|
process_admin: Správce procesu
|
||||||
|
space_admin: Správce prostoru
|
||||||
|
search_field_admins: Správci
|
||||||
|
search_field_processes: Procesy
|
||||||
|
search_question: Co hledáte?
|
||||||
|
spaces: Proces / Pravidlo / Shromáždění
|
||||||
|
title: Název
|
||||||
|
type: Typ
|
||||||
|
navbar_links:
|
||||||
|
create:
|
||||||
|
error: Chyba
|
||||||
|
success: Úspěch
|
||||||
|
destroy:
|
||||||
|
success: Úspěch
|
||||||
|
no_links: Žádné odkazy
|
||||||
|
update:
|
||||||
|
error: Chyba
|
||||||
|
success: Úspěch
|
||||||
|
titles:
|
||||||
|
navbar_links: Odkazy navigační lišty
|
||||||
|
users:
|
||||||
|
form:
|
||||||
|
area: Oblast
|
||||||
|
index:
|
||||||
|
filter:
|
||||||
|
all: Vše
|
||||||
|
filter_by: filtrovat podle
|
||||||
|
search: Hledat
|
||||||
|
authorization_handlers:
|
||||||
|
admin:
|
||||||
|
direct_verifications:
|
||||||
|
help:
|
||||||
|
- 'Umožňuje masivní zavedení uživatelů:'
|
||||||
|
- Přímá registrace v organizaci a odeslání pozvánek
|
||||||
|
- Ověřit je pomocí jakékoliv metody aktivního ověření
|
||||||
|
- Zrušit jejich ověření pomocí jakékoli metody aktivního ověření
|
||||||
|
direct_verifications:
|
||||||
|
explanation: Ruční ověření správcem organizace
|
||||||
|
name: Přímé ověření
|
||||||
|
calendar:
|
||||||
|
admin:
|
||||||
|
actions:
|
||||||
|
new_external_event: Nová externí událost
|
||||||
|
external_events:
|
||||||
|
create:
|
||||||
|
invalid: Neplatná externí událost
|
||||||
|
success: Externí událost byla úspěšně vytvořena
|
||||||
|
destroy:
|
||||||
|
success: Externí událost byla úspěšně odstraněna
|
||||||
|
edit:
|
||||||
|
save: Uložit externí událost
|
||||||
|
form:
|
||||||
|
title: Externí událost
|
||||||
|
index:
|
||||||
|
no_records_html: <p>Nebyly vytvořeny žádné externí události.</p> <p>Začněte
|
||||||
|
přidáním externí události tlačítkem "<a href="%{new_set_link}">%{button_name}</a>.</p>
|
||||||
|
title: Externí události
|
||||||
|
new:
|
||||||
|
create: Vytvořit externí událost
|
||||||
|
title: Nová externí událost
|
||||||
|
update:
|
||||||
|
invalid: Chyba při aktualizaci externí události
|
||||||
|
success: Externí událost byla úspěšně aktualizována
|
||||||
|
models:
|
||||||
|
external_events:
|
||||||
|
fields:
|
||||||
|
end_at: Konec v
|
||||||
|
start_at: Začátek v
|
||||||
|
title: Název
|
||||||
|
url: URL
|
||||||
|
index:
|
||||||
|
filters:
|
||||||
|
consultation: Konzultace
|
||||||
|
debate: Debaty
|
||||||
|
external_event: Externí události
|
||||||
|
meeting: Schůzky
|
||||||
|
participatory_step: Účastnický proces
|
||||||
|
title: Globální kalendář
|
||||||
|
menu:
|
||||||
|
calendar: Kalendář
|
||||||
|
gantt: Ganttův graf
|
||||||
|
ical: Stáhnout iCAL
|
||||||
|
components:
|
||||||
|
cookies:
|
||||||
|
accept: Přijmout vše
|
||||||
|
analytics:
|
||||||
|
description: Umožňuje sledování za účelem zlepšení uživatelské zkušenosti
|
||||||
|
consent_modal:
|
||||||
|
description: Tento způsob umožňuje filtrovat soubory cookie, které chcete.
|
||||||
|
decidim:
|
||||||
|
description: Umožňuje zkontrolovat, zda uživatel soubory cookie přijal
|
||||||
|
decidim_session:
|
||||||
|
description: Umožňuje udržovat relaci uživatele aktivní po omezenou dobu.
|
||||||
|
Je nutný ke zlepšení uživatelského komfortu v Decidim
|
||||||
|
matomo:
|
||||||
|
description: Umožňuje sledování za účelem zlepšení uživatelské zkušenosti
|
||||||
|
name: Cookies
|
||||||
|
purposes:
|
||||||
|
ads: Reklamy
|
||||||
|
analytics: Analytika
|
||||||
|
checking: Zkontrolujte souhlas uživatele
|
||||||
|
security: Zabezpečení
|
||||||
|
session: Seance
|
||||||
|
tracking: Trasování
|
||||||
|
department_admin:
|
||||||
|
name: Správce oddělení
|
||||||
|
navbar_links:
|
||||||
|
name: Odkazy navigační lišty
|
||||||
|
navigation_maps:
|
||||||
|
name: Navigační Mapy
|
||||||
|
time_tracker:
|
||||||
|
name: Časový záznam
|
||||||
|
settings:
|
||||||
|
global:
|
||||||
|
activities_label: Název pro "Aktivity"
|
||||||
|
announcement: Oznámení
|
||||||
|
assignations_label: Jméno pro "Přiřazení"
|
||||||
|
milestones_label: Název pro "Milníky"
|
||||||
|
tasks_label: Název pro "Úkoly"
|
||||||
|
time_events_label: Název pro "Čas události"
|
||||||
|
step:
|
||||||
|
announcement: Oznámení
|
||||||
|
views:
|
||||||
|
activity:
|
||||||
|
info: Klikněte na tlačítko pro zaznamenání času.
|
||||||
|
time_elapsed: 'Uplynulý čas:'
|
||||||
|
index:
|
||||||
|
account_message: <a href="%{sign_in_url}">Přihlaste se pomocí svého účtu</a>
|
||||||
|
nebo se <a href="%{sign_up_url}">zaregistrujte</a> pro účast na této
|
||||||
|
aktivitě.
|
||||||
|
data:
|
||||||
|
fill: Vyplňte údaje
|
||||||
|
submit: Odeslat
|
||||||
|
request: Žádost o připojení k aktivitě
|
||||||
|
direct_verifications:
|
||||||
|
verification:
|
||||||
|
admin:
|
||||||
|
direct_verifications:
|
||||||
|
create:
|
||||||
|
authorized: '%{authorized} uživatelů bylo úspěšně ověřeno pomocí [%{handler}]
|
||||||
|
(%{count} detekováno, %{errors} chyb)'
|
||||||
|
info: Zjištěno %{count} uživatelů, z nichž %{registered} jsou registrováni,
|
||||||
|
%{authorized} autorizováni pomocí [%{handler}] (%{unconfirmed} nepotvrzeno)
|
||||||
|
registered: '%{registered} uživatelů bylo úspěšně zaregistrováno (%{count}
|
||||||
|
detekováno, %{errors} chyb) '
|
||||||
|
revoked: Ověření od %{revoked} uživatelů bylo zrušeno pomocí [%{handler}]
|
||||||
|
(%{count} detekováno, %{errors} chyb)
|
||||||
|
gdpr_disclaimer: Udělejte to v rámci vaší odpovědnosti. Nezapomeňte, že
|
||||||
|
potřebujete mít výslovný souhlas svých uživatelů, abyste je mohli zaregistrovat.
|
||||||
|
V opačném případě můžete porušovat nařízení o GDPR v zemích EU.
|
||||||
|
index:
|
||||||
|
stats: Statistiky uživatelů
|
||||||
|
title: Registrovat a autorizovat uživatele
|
||||||
|
new:
|
||||||
|
authorization_handler: Ověřovací metoda
|
||||||
|
authorize: Autorizovat uživatele
|
||||||
|
check: Zkontrolovat stav uživatelů
|
||||||
|
info: Zadejte e-maily zde, jeden na řádek. Pokud e-mailům předchází text,
|
||||||
|
bude interpretován jako jméno uživatele
|
||||||
|
register: Registrovat uživatele na platformě (pokud existují, budou ignorováni)
|
||||||
|
revoke: Zrušit autorizaci od uživatelů
|
||||||
|
submit: Odeslat a zpracovat seznam
|
||||||
|
textarea: Seznam e-mailů
|
||||||
|
stats:
|
||||||
|
index:
|
||||||
|
authorized: Autorizováno
|
||||||
|
authorized_unconfirmed: Autorizováno, ale nepotvrzeno
|
||||||
|
global: '- Jakákoli metoda ověřování -'
|
||||||
|
registered: Registrován
|
||||||
|
unconfirmed: Nepotvrzeno
|
||||||
|
authorizations:
|
||||||
|
new:
|
||||||
|
no_action: Tato metoda vyžaduje administrátora, který vás ověřuje
|
||||||
|
favorites:
|
||||||
|
favorite_button:
|
||||||
|
add_to_favorites: Přidat k oblíbeným
|
||||||
|
remove_from_favorites: Odstranit z oblíbených
|
||||||
|
sign_in_before_favorite: Přihlaste se a přidejte jako oblíbené
|
||||||
|
favorites:
|
||||||
|
index:
|
||||||
|
description_html: <p> Osobní oblíbené položky můžete přidat pomocí tlačítka
|
||||||
|
Přidat do oblíbených. Objeví se na této stránce. </p>
|
||||||
|
icon_description: 'Pomocí této ikony můžete přidat oblíbené položky:'
|
||||||
|
title: Oblíbené
|
||||||
|
show:
|
||||||
|
description_html: <p> Zde vidíte všechny oblíbené položky, které jste přidali
|
||||||
|
v různých fázích procesu. V postranní navigaci můžete vybrat, které oblíbené
|
||||||
|
položky chcete zobrazit. </p>
|
||||||
|
title: Oblíbené
|
||||||
|
side_panel:
|
||||||
|
show_navigation: Zobrazit navigaci
|
||||||
|
favoriting_count:
|
||||||
|
times_added_to_favorites:
|
||||||
|
one: Jedna osoba přidala toto do svých oblíbených
|
||||||
|
other: '%{count} lidí si toto přidalo ke svým oblíbeným'
|
||||||
|
zero: Toto zatím nikdo nepřidal mezi své oblíbené
|
||||||
|
ldap:
|
||||||
|
ldap_configurations:
|
||||||
|
create:
|
||||||
|
error: Při vytváření nové konfigurace LDAP došlo k chybě.
|
||||||
|
success: Konfigurace LDAP byla úspěšně vytvořena.
|
||||||
|
destroy:
|
||||||
|
success: Konfigurace LDAP byla úspěšně zničena.
|
||||||
|
edit:
|
||||||
|
title: Upravit LDAP
|
||||||
|
update: Aktualizovat
|
||||||
|
form:
|
||||||
|
authentication_query: Authentifikační query
|
||||||
|
dn: Základní doménové jméno
|
||||||
|
email_field: E-mail
|
||||||
|
host: Hostitel
|
||||||
|
name_field: Jméno
|
||||||
|
organization: Organizace
|
||||||
|
password_field: Heslo
|
||||||
|
port: Port
|
||||||
|
username_field: Uživatelské jméno
|
||||||
|
index:
|
||||||
|
title: LDAP
|
||||||
|
new:
|
||||||
|
create: Vytvořit
|
||||||
|
title: Nový LDAP
|
||||||
|
update:
|
||||||
|
error: Při aktualizaci této konfigurace LDAP došlo k chybě.
|
||||||
|
success: Konfigurace LDAP byla úspěšně aktualizována.
|
||||||
|
menu:
|
||||||
|
ldap: LDAP
|
||||||
|
models:
|
||||||
|
ldap_configuration:
|
||||||
|
fields:
|
||||||
|
created_at: Vytvořeno v
|
||||||
|
name: Organizace / název domény
|
||||||
|
name: LDAP konfigurace
|
||||||
|
log:
|
||||||
|
value_types:
|
||||||
|
activity_presenter:
|
||||||
|
not_found: 'Aktivita nebyla v databázi nalezena (ID: %{id})'
|
||||||
|
time_tracker_presenter:
|
||||||
|
not_found: 'Komponenta Time Tracker nebyla v databázi nalezena (ID: %{id})'
|
||||||
|
navbar_links:
|
||||||
|
admin:
|
||||||
|
navbar_links:
|
||||||
|
edit:
|
||||||
|
title: Název
|
||||||
|
update: Aktualizace
|
||||||
|
form:
|
||||||
|
link: Odkaz
|
||||||
|
new_tab: Nová záložka
|
||||||
|
same_tab: Stejná záložka
|
||||||
|
title: Nadpis
|
||||||
|
weight: Důležitost
|
||||||
|
new:
|
||||||
|
create: Vytvořit
|
||||||
|
title: Nadpis
|
||||||
|
navigation_maps:
|
||||||
|
admin:
|
||||||
|
areas:
|
||||||
|
create:
|
||||||
|
error: Došlo k chybě při vytváření oblasti
|
||||||
|
success: Oblast byla úspěšně vytvořena
|
||||||
|
form:
|
||||||
|
no_popup: Nepoužívejte vyskakovací okno, odkazujte přímo na oblast.
|
||||||
|
new:
|
||||||
|
area: Detaily nové oblasti
|
||||||
|
cancel: Zrušit
|
||||||
|
save: Uložit
|
||||||
|
show:
|
||||||
|
area: Detaily oblasti
|
||||||
|
cancel: Zrušit
|
||||||
|
link_suggestions: 'Tip: použijte %{map} pro propojení dalších karet'
|
||||||
|
save: Uložit
|
||||||
|
update:
|
||||||
|
error: Došlo k chybě při ukládání oblasti
|
||||||
|
success: Oblast úspěšně uložena
|
||||||
|
content_blocks:
|
||||||
|
name: Navigační Mapy
|
||||||
|
navigation_map:
|
||||||
|
view: Zapojte se
|
||||||
|
navigation_map_settings_form:
|
||||||
|
add: Přidat
|
||||||
|
blueprint_image: Obrázek plánu
|
||||||
|
description: Popis
|
||||||
|
editor: Editor mapy
|
||||||
|
height: Height (px)
|
||||||
|
id: Id
|
||||||
|
image_missing: Pro začátek přidejte obrázek plánu
|
||||||
|
info: Obecné informace
|
||||||
|
link: Odkaz
|
||||||
|
remove_blueprint: Smazat tento plán
|
||||||
|
title: Název
|
||||||
|
type: Typ
|
||||||
|
upload_image: Nahrát obrázek
|
||||||
|
create:
|
||||||
|
error: Chyba při vytváření plánu
|
||||||
|
success: Plán byl úspěšně vytvořen
|
||||||
|
pages:
|
||||||
|
home:
|
||||||
|
statistics:
|
||||||
|
activities_count: Aktivit
|
||||||
|
assignees_count: Dobrovolníků
|
||||||
|
tasks_count: Úloh
|
||||||
|
participatory_processes:
|
||||||
|
statistics:
|
||||||
|
activities_count: Aktivit
|
||||||
|
assignees_count: Dobrovolníků
|
||||||
|
tasks_count: Úloh
|
||||||
|
process_groups_content_block:
|
||||||
|
content_blocks:
|
||||||
|
highlighted_process_groups:
|
||||||
|
name: Zvýrazněné skupiny procesů
|
||||||
|
pages:
|
||||||
|
home:
|
||||||
|
highlighted_process_groups:
|
||||||
|
active_processes: Aktivní procesy
|
||||||
|
see_all_processes: Zobrazit všechny procesy
|
||||||
|
term_customizer:
|
||||||
|
admin:
|
||||||
|
actions:
|
||||||
|
add_multiple_translations: Přidat více
|
||||||
|
back: Zpět
|
||||||
|
cancel: Zrušit
|
||||||
|
clear_cache: Vymazat mezipaměť
|
||||||
|
confirm_duplicate: Opravdu chcete duplikovat tuto sadu?
|
||||||
|
duplicate: Duplikovat
|
||||||
|
help: Nápověda
|
||||||
|
import: Import
|
||||||
|
new_translation: Nový překlad
|
||||||
|
new_translation_set: Nová sada překladu
|
||||||
|
view: Zobrazit
|
||||||
|
add_translations:
|
||||||
|
index:
|
||||||
|
add: Přidat
|
||||||
|
help_html: <p> Začněte zadáním několika písmen, která se objeví na výrazu,
|
||||||
|
který chcete změnit, na vyhledávacím panelu. Počkejte několik sekund
|
||||||
|
a pod vyhledávacím polem se zobrazí seznam všech překladů odpovídajících
|
||||||
|
vašemu vyhledávání. Klikněte na překlady v seznamu, který chcete změnit.
|
||||||
|
Zobrazí se pod vyhledávacím polem v seznamu překladů, které mají být
|
||||||
|
přidány. </p> <p> Jakmile přidáte všechny překlady, které chcete změnit,
|
||||||
|
klikněte na tlačítko „%{button_name}“ ve spodní části obrazovky.</p>
|
||||||
|
help_title: Jak hledat překlady?
|
||||||
|
search: Hledat
|
||||||
|
caches:
|
||||||
|
clear:
|
||||||
|
success: Cache cleared successfully
|
||||||
|
models:
|
||||||
|
translation_sets:
|
||||||
|
fields:
|
||||||
|
name: Název
|
||||||
|
translations:
|
||||||
|
fields:
|
||||||
|
key: Překladový klíč
|
||||||
|
original_term: Původní termín
|
||||||
|
term: Upravený termín
|
||||||
|
titles:
|
||||||
|
add_multiple_translations: Přidat více
|
||||||
|
translation_sets: Překladové sady
|
||||||
|
translations: Překlady
|
||||||
|
translation_sets:
|
||||||
|
constraint_fields:
|
||||||
|
constraint: Omezení
|
||||||
|
remove: Odstranit
|
||||||
|
create:
|
||||||
|
error: Při vytváření sady překladu došlo k chybě.
|
||||||
|
success: Sada překladu byla úspěšně vytvořena.
|
||||||
|
destroy:
|
||||||
|
success: Sada překladu byla úspěšně smazána.
|
||||||
|
duplicate:
|
||||||
|
copied_set_name: Kopie %{name}
|
||||||
|
error: Chyba při duplikování sady překladu.
|
||||||
|
success: Sada překladu byla úspěšně duplikována.
|
||||||
|
edit:
|
||||||
|
save: Uložit
|
||||||
|
title: Sada překladu
|
||||||
|
form:
|
||||||
|
add_constraint: Přidat omezení
|
||||||
|
constraint_help_html: <p> Omezení jsou konkrétní pravidla, která vám umožňují
|
||||||
|
aplikovat přizpůsobení v sadě na konkrétní kontext. </p> <p> Pokud nedefinujete
|
||||||
|
žádná omezení, použijí se přizpůsobení v této sadě na celou aplikaci
|
||||||
|
. Na druhou stranu, pokud chcete, aby se přizpůsobení v této sadě vztahovalo
|
||||||
|
pouze na konkrétní proces, vyberte jako typ participativního prostoru
|
||||||
|
možnost „Participativní procesy“ a jako participativní prostor cílový
|
||||||
|
proces. Kromě toho můžete také použít přizpůsobení na konkrétní komponentu
|
||||||
|
definováním komponenty pro omezení. </p> <p> Pokud definujete více omezení,
|
||||||
|
přizpůsobení se použijí ve všech z nich. </p>
|
||||||
|
constraint_help_title: Co jsou omezení?
|
||||||
|
help_html: <p> Sada překladu je „kontejner“, který obsahuje překlady pro
|
||||||
|
konkrétní kontext, který chcete upravit. </p> <p> Sada překladu vám
|
||||||
|
pomůže uspořádat přizpůsobení a použít je v různých kontextech. To vám
|
||||||
|
umožní přizpůsobit stejný překlad odlišně v různých kontextech. </p>
|
||||||
|
<p> Pokud například chcete přizpůsobit tlačítko s výrazem „Přidat“ odlišně
|
||||||
|
pro různé participativní procesy, můžete vytvořit samostatné překladové
|
||||||
|
sady pro oba procesy a použít sadu na tyto procesy pomocí omezení.</p>
|
||||||
|
help_title: Co je překladová sada?
|
||||||
|
title: Překladová sada
|
||||||
|
index:
|
||||||
|
no_records_html: <p> Nejsou k dispozici žádné překladové sady. </p> <p>
|
||||||
|
Začněte přidáním překladové sady pomocí tlačítka „<a href="%{new_set_link}">%{button_name}</a>“.</p>
|
||||||
|
new:
|
||||||
|
create: Vytvořit
|
||||||
|
title: Překladové sady
|
||||||
|
update:
|
||||||
|
error: Při aktualizaci překladové sady došlo k chybě.
|
||||||
|
success: Překladová sada byla úspěšně aktualizována.
|
||||||
|
translations:
|
||||||
|
create:
|
||||||
|
error: Chyba při vytváření překladu.
|
||||||
|
success: Překlad byl úspěšně vytvořen.
|
||||||
|
destroy:
|
||||||
|
success: Překlad byl úspěšně smazán.
|
||||||
|
edit:
|
||||||
|
save: Uložit
|
||||||
|
title: Překlad
|
||||||
|
form:
|
||||||
|
help_html: <p> Překladový klíč je technický odkaz na překlad, který má
|
||||||
|
být přeložen. Toto není termín, který chcete změnit, ale technický klíč,
|
||||||
|
který odkazuje na tento překlad. </p> <p> Například pokud chcete změnit
|
||||||
|
výraz <em> „Procesy“ </em> v horní nabídce, použili byste klíč <em>
|
||||||
|
"decidim.menu.processes" </em>. </p> <p> <a href="https://guides.rubyonrails.org/i18n.html"
|
||||||
|
target = "_blank"> Další informace o internacionalizaci Rails </a>.
|
||||||
|
</p>
|
||||||
|
help_title: Co je překladový klíč?
|
||||||
|
term_help_html: <p> Přizpůsobený výraz je konečné slovo, které se má v
|
||||||
|
uživatelském rozhraní zobrazit místo původního výrazu. Je zřejmé, že
|
||||||
|
přizpůsobený výraz se může u každého povoleného jazyka lišit. </p>
|
||||||
|
term_help_title: Co je přizpůsobený termín?
|
||||||
|
title: Překlad
|
||||||
|
import:
|
||||||
|
error: Chyba při importu překladů
|
||||||
|
success: Překlady byly úspěšně importovány.
|
||||||
|
index:
|
||||||
|
actions: Akce
|
||||||
|
no_records_html: <p> V této sadě nejsou k dispozici žádné překlady. </p>
|
||||||
|
<p> Začněte přidáním překladů do této sady. Nejjednodušší je použít
|
||||||
|
tlačítko „<a href="%{add_multiple_link}">%{button_name}</a>“, kde můžete
|
||||||
|
vyhledávat překlady se stejnými výrazy, jaké vidíte v uživatelském rozhraní.
|
||||||
|
</p>
|
||||||
|
selected: vybrané
|
||||||
|
new:
|
||||||
|
create: Vytvořit
|
||||||
|
title: Překlady
|
||||||
|
new_import:
|
||||||
|
accepted_mime_types:
|
||||||
|
csv: CSV
|
||||||
|
json: JSON
|
||||||
|
xls: XLS
|
||||||
|
file_legend: 'Přidejte soubor pro import, který bude analyzován pro překlady.
|
||||||
|
Podporované formáty jsou: %{valid_mime_types}'
|
||||||
|
start_import: Start importu
|
||||||
|
title: Import překladů
|
||||||
|
zip_hint: Soubor ZIP můžete také nahrát z exportu překladů.
|
||||||
|
update:
|
||||||
|
error: Chyba při aktualizaci překladu.
|
||||||
|
success: Překlad byl úspěšně aktualizován.
|
||||||
|
translations_destroys:
|
||||||
|
destroy:
|
||||||
|
error: Chyba při mazání překladů.
|
||||||
|
success: Překlady byly úspěšně smazány.
|
||||||
|
new:
|
||||||
|
destroy: Smazat
|
||||||
|
title: Překlady smazat
|
||||||
|
menu:
|
||||||
|
term_customizer: Přizpůsobovač termínů
|
||||||
|
time_tracker:
|
||||||
|
admin:
|
||||||
|
actions:
|
||||||
|
title: Akce
|
||||||
|
activities:
|
||||||
|
actions:
|
||||||
|
assignations: Správa přiřazení
|
||||||
|
confirm_destroy: Opravdu chcete odstranit tuto aktivitu?
|
||||||
|
destroy: Odstranit aktivitu
|
||||||
|
edit: Upravit aktivitu
|
||||||
|
new: Nová aktivita
|
||||||
|
create:
|
||||||
|
error: Chyba vytváření aktivity
|
||||||
|
success: Aktivita byla úspěšně vytvořena
|
||||||
|
destroy:
|
||||||
|
success: Aktivita úspěšně smazána
|
||||||
|
edit:
|
||||||
|
submit: Změnit aktivitu
|
||||||
|
title: Upravit aktivitu
|
||||||
|
index:
|
||||||
|
title: Úkolové aktivity
|
||||||
|
new:
|
||||||
|
submit: Vytvořit aktivitu
|
||||||
|
title: Nová aktivita
|
||||||
|
update:
|
||||||
|
error: Chyba při aktualizaci aktivity
|
||||||
|
success: Akce byla úspěšně aktualizována
|
||||||
|
assignations:
|
||||||
|
actions:
|
||||||
|
accept: Přijmout
|
||||||
|
accept_all: Přijmout všechny čekající přiřazení
|
||||||
|
assignations: Správa přiřazení
|
||||||
|
confirm_destroy: Opravdu chcete odstranit toto přiřazení?
|
||||||
|
destroy: Odstranit přiřazení
|
||||||
|
new: Nové přiřazení
|
||||||
|
reject: Odmítnout
|
||||||
|
create:
|
||||||
|
error: Chyba při vytváření přiřazení
|
||||||
|
success: Přiřazení bylo úspěšně vytvořeno
|
||||||
|
destroy:
|
||||||
|
error: Chyba při odstraňování přiřazení
|
||||||
|
succcess: Přiřazení bylo úspěšně odstraněno
|
||||||
|
form:
|
||||||
|
existing_user: Existující účastník
|
||||||
|
non_user: Není účastníkem
|
||||||
|
select_user: Vybrat účastníka
|
||||||
|
user_type: Typ účastníka
|
||||||
|
index:
|
||||||
|
title: Přiřazení
|
||||||
|
new:
|
||||||
|
create: Vytvořit přiřazení
|
||||||
|
title: Nové přiřazení k této aktivitě
|
||||||
|
update:
|
||||||
|
error: Chyba při aktualizaci přiřazení
|
||||||
|
success: Přiřazená osoba úspěšně aktualizována
|
||||||
|
breadcrumbs:
|
||||||
|
assignations: Přiřazení
|
||||||
|
global: Všechny úkoly
|
||||||
|
stats: Statistiky
|
||||||
|
exports:
|
||||||
|
time_tracker_activity_questionnaire_answers: Odpovědi na dotazník o činnosti
|
||||||
|
time_tracker_assignee_questionnaire_answers: Odpovědi na dotazník přiřazeného
|
||||||
|
models:
|
||||||
|
activity:
|
||||||
|
name: Aktivita
|
||||||
|
assignation:
|
||||||
|
name: Přiřazení
|
||||||
|
task:
|
||||||
|
name: Úloha
|
||||||
|
questionnaires:
|
||||||
|
index:
|
||||||
|
title: Dotazník
|
||||||
|
questionnaire:
|
||||||
|
edit: Upravit dotazník
|
||||||
|
stats:
|
||||||
|
index:
|
||||||
|
title: Statistiky
|
||||||
|
tasks:
|
||||||
|
actions:
|
||||||
|
confirm_destroy: Jste si jisti, že chcete odstranit tento úkol?
|
||||||
|
destroy: Smazat úkol
|
||||||
|
edit: Upravit úkol
|
||||||
|
new: Nová úloha
|
||||||
|
activity_questionnaire:
|
||||||
|
title: Dotazník o činnosti
|
||||||
|
assignations:
|
||||||
|
bulk_invalid: Chyba, %{count} účastníků nelze přiřadit
|
||||||
|
bulk_ok: Úspěšně přiřazeno %{count} účastníků
|
||||||
|
pending: Čekající přiřazení
|
||||||
|
assignee_questionnaire:
|
||||||
|
title: Podmínky a zásady Dotazníku
|
||||||
|
create:
|
||||||
|
error: Chyba při vytváření úlohy
|
||||||
|
success: Úloha úspěšně vytvořena
|
||||||
|
destroy:
|
||||||
|
success: Úloha úspěšně smazána
|
||||||
|
edit:
|
||||||
|
submit: Aktualizovat
|
||||||
|
title: Aktualizovat úkol
|
||||||
|
index:
|
||||||
|
title: Úlohy
|
||||||
|
new:
|
||||||
|
submit: Vytvořit
|
||||||
|
title: Vytvořit úkol
|
||||||
|
update:
|
||||||
|
error: Chyba při aktualizaci úlohy
|
||||||
|
success: Úloha úspěšně aktualizována
|
||||||
|
time_tracker_exports:
|
||||||
|
create:
|
||||||
|
error: Chyba při importu dat o sledování času do odpovědnosti
|
||||||
|
success: Data sledování času byla úspěšně exportována do odpovědnosti
|
||||||
|
admin_log:
|
||||||
|
activity:
|
||||||
|
create: '%{user_name} vytvořil aktivitu %{resource_name}'
|
||||||
|
delete: '%{user_name} odstranil aktivitu %{resource_name}'
|
||||||
|
update: '%{user_name} aktualizoval aktivitu %{resource_name}'
|
||||||
|
assignation:
|
||||||
|
create: '%{user_name} vytvořil přiřazení'
|
||||||
|
delete: '%{user_name} odstranil přiřazení'
|
||||||
|
update: '%{user_name} aktualizoval přiřazení'
|
||||||
|
task:
|
||||||
|
create: '%{user_name} vytvořil úkol %{resource_name}'
|
||||||
|
delete: '%{user_name} odstranil úkol %{resource_name}'
|
||||||
|
update: '%{user_name} aktualizoval úkol %{resource_name}'
|
||||||
|
assignations:
|
||||||
|
request:
|
||||||
|
error: Při přiřazování k této aktivitě došlo k chybě.
|
||||||
|
success: Úspěšně jste požádali o připojení k této aktivitě!
|
||||||
|
show:
|
||||||
|
assignations_activity: Aktivita %{user_name}
|
||||||
|
milestones_list: Seznam milníků
|
||||||
|
clock:
|
||||||
|
hours: '%{n}h'
|
||||||
|
minutes: '%{n}m'
|
||||||
|
seconds: '%{n}s'
|
||||||
|
default_activity_questionnaire:
|
||||||
|
description: Děkujeme, že jste vyplnili tento dotazník! Ptáme se na vás tento
|
||||||
|
soubor otázek, který vám pomůže pochopit, zda je váš projekt (a jeho akce
|
||||||
|
prováděné na dobrovolném základě) vyvážený, pokud jde o rozdělení úkolů
|
||||||
|
kvůli pohlaví. Zohlednění těchto otázek může být také užitečnou příležitostí
|
||||||
|
k analýze toho, co je považováno za důležité a kdo tyto úkoly obvykle plní.
|
||||||
|
question_1:
|
||||||
|
body: Jak je podle vás tento úkol důležitý?
|
||||||
|
description: Od 1 do 5 považujete tento úkol za nejdůležitější (5), vůbec
|
||||||
|
není důležitý (1) nebo něco mezi tím?
|
||||||
|
option_1: 1 (vůbec není důležitý)
|
||||||
|
option_2: 2 (nepříliš důležité)
|
||||||
|
option_3: 3 (Spíše důležité)
|
||||||
|
option_4: 4 (Velmi důležité)
|
||||||
|
option_5: 5 (Nejdůležitější)
|
||||||
|
question_2:
|
||||||
|
body: Kdo si myslíte, že tento úkol obvykle plní?
|
||||||
|
description: Myslíte si, že tento úkol plní většinou lidé, kteří se ztotožňují
|
||||||
|
s určitým pohlavím?
|
||||||
|
option_1: Většinou ženy
|
||||||
|
option_2: Většinou muži
|
||||||
|
option_3: Nevidím rozdíly podle pohlaví
|
||||||
|
option_4: Ostatní
|
||||||
|
title: Jak vnímáte tento úkol?
|
||||||
|
tos: Údaje, které zde byly zodpovězeny, se považují za důvěrné a používají
|
||||||
|
se pouze pro statistické účely. Také platí všeobecné <a href="/pages/terms-and-conditions">Podmínky</a>.
|
||||||
|
Odesláním tohoto dotazníku s nimi souhlasíte.
|
||||||
|
default_assignee_questionnaire:
|
||||||
|
description: Děkujeme za vyplnění tohoto dotazníku! Ptáme se vás na tento
|
||||||
|
soubor otázek, abychom vám pomohli pochopit, zda je váš projekt (a jeho
|
||||||
|
akce prováděné na základě dobrovolnosti) vyvážený z hlediska rozdělení úkolů
|
||||||
|
z důvodu pohlaví.
|
||||||
|
question_1:
|
||||||
|
body: S jakým pohlavím se ztotožňujete?
|
||||||
|
description: Vyberte možnost, která nejlépe odpovídá vaší genderové identitě.
|
||||||
|
option_1: Žena
|
||||||
|
option_2: muž
|
||||||
|
option_3: Ne-binární
|
||||||
|
option_4: Ostatní
|
||||||
|
question_2:
|
||||||
|
body: Jaký je váš věk?
|
||||||
|
description: Vyberte si svůj věkový rozsah
|
||||||
|
option_1: Pod 15
|
||||||
|
option_10: 55 až 60
|
||||||
|
option_11: 65 až 70
|
||||||
|
option_12: 70 až 75
|
||||||
|
option_13: 75 až 80
|
||||||
|
option_14: 80 až 85
|
||||||
|
option_15: 85 až 90
|
||||||
|
option_16: Přes 90
|
||||||
|
option_2: 15 až 20
|
||||||
|
option_3: 20 až 25
|
||||||
|
option_4: 25 až 30
|
||||||
|
option_5: 30 až 35
|
||||||
|
option_6: 35 až 40
|
||||||
|
option_7: 40 až 45
|
||||||
|
option_8: 45 až 50
|
||||||
|
option_9: 50 až 55
|
||||||
|
title: Podmínky použití a demografické údaje
|
||||||
|
tos: Údaje, které zde byly zodpovězeny, se považují za důvěrné a používají
|
||||||
|
se pouze pro statistické účely. Také platí všeobecné <a href="/pages/terms-and-conditions">Podmínky</a>.
|
||||||
|
Odesláním tohoto dotazníku s nimi souhlasíte.
|
||||||
|
milestone:
|
||||||
|
dedicated_time: '%{hours}h %{minutes}m %{seconds}s'
|
||||||
|
time_dedicated: Vyhrazený čas
|
||||||
|
title: Aktivita %{user_name}
|
||||||
|
milestone_form:
|
||||||
|
button_no: Ne, děkuji
|
||||||
|
button_submit: Uložit
|
||||||
|
description: Podělte se o důkaz své práce nahráním obrázku a krátkého popisu
|
||||||
|
toho, čeho jste dosáhli.
|
||||||
|
input_file: Soubor
|
||||||
|
input_title: Název
|
||||||
|
title: Zanechte svou značku!
|
||||||
|
milestones:
|
||||||
|
create:
|
||||||
|
error: Chyba při vytváření milníku
|
||||||
|
success: Milník byl úspěšně vytvořen
|
||||||
|
index:
|
||||||
|
assignations_activity: Aktivita %{user_name}
|
||||||
|
back_to_list: Zpět k aktivitám
|
||||||
|
joined_on: Přidal/a se dne
|
||||||
|
last_worked_on: Naposledy pracoval
|
||||||
|
total_time: Celkový vyhrazený čas
|
||||||
|
milestone:
|
||||||
|
time_dedicated: Vyhrazený čas
|
||||||
|
models:
|
||||||
|
activity:
|
||||||
|
fields:
|
||||||
|
assignations_accepted: Přijaté přiřazení
|
||||||
|
assignations_pending: Čekající přiřazení
|
||||||
|
description: Popis
|
||||||
|
end_date: Datum ukončení
|
||||||
|
max_minutes_per_day: Max. minut denně
|
||||||
|
requests_start_at: Požadavky začínají v
|
||||||
|
start_date: Datum zahájení
|
||||||
|
status: Stav
|
||||||
|
statuses:
|
||||||
|
finished: Dokončeno
|
||||||
|
inactive: Neaktivní
|
||||||
|
not_started: Nezahájeno
|
||||||
|
open: Otevřeno
|
||||||
|
name: Aktivita
|
||||||
|
assignation:
|
||||||
|
fields:
|
||||||
|
activity: Aktivita
|
||||||
|
email: E-mail
|
||||||
|
invited_at: Pozván na
|
||||||
|
invited_by: Pozván od
|
||||||
|
name: Jméno
|
||||||
|
requested_at: Požadováno v %{time}
|
||||||
|
status: Stav
|
||||||
|
statuses:
|
||||||
|
accepted: Přijato
|
||||||
|
pending: Čekající
|
||||||
|
rejected: Odmítnuto
|
||||||
|
task: Úloha
|
||||||
|
time_dedicated: Vyhrazený čas
|
||||||
|
tos_accepted_at: Členem od
|
||||||
|
name: Přiřazení
|
||||||
|
questionnaire:
|
||||||
|
fields:
|
||||||
|
name: Jméno
|
||||||
|
title: Název
|
||||||
|
task:
|
||||||
|
fields:
|
||||||
|
activities_count: Počet aktivit
|
||||||
|
activities_end_at: Poslední aktivita končí v
|
||||||
|
activities_start_at: První aktivita začíná v
|
||||||
|
assignations_accepted: Přijaté přiřazení
|
||||||
|
assignations_pending: Čekající přiřazení
|
||||||
|
name: Jméno
|
||||||
|
name: Úloha
|
||||||
|
reports:
|
||||||
|
user:
|
||||||
|
index:
|
||||||
|
accepted: Přijato
|
||||||
|
dedicated_time: 'Dosud vyhrazený čas: %{time}'
|
||||||
|
empty: Nemáte žádné přiřazení aktivit
|
||||||
|
pending: Čekající
|
||||||
|
time_events:
|
||||||
|
start:
|
||||||
|
already_started: Počítadlo je již spuštěno
|
||||||
|
error: Chyba při spuštění počítadla
|
||||||
|
success: Počítadlo bylo úspěšně spuštěno
|
||||||
|
stop:
|
||||||
|
already_stopped: Počítadlo již zastaveno
|
||||||
|
error: Chyba při zastavování počítadla
|
||||||
|
success: Počítadlo se úspěšně zastavilo
|
||||||
|
time_tracker:
|
||||||
|
activity:
|
||||||
|
counter_stopped: Počítadlo bylo automaticky zastaveno
|
||||||
|
questionnaire:
|
||||||
|
answered: Děkujeme za zodpovězení dotazníku!
|
||||||
|
respond: Co si myslíte o tomto úkolu?
|
||||||
|
assignee_data:
|
||||||
|
answer: Začněme!
|
||||||
|
description: Abychom lépe porozuměli našim účastníkům a jejich vztahu k
|
||||||
|
těmto úkolům, žádáme vás, abyste vyplnili několik otázek týkajících se
|
||||||
|
vašeho demografického profilu. Před registrací k jakémukoli úkolu se také
|
||||||
|
chceme ujistit, že souhlasíte s podmínkami použití. Děkujeme!
|
||||||
|
title: Podmínky použití a demografické údaje
|
||||||
|
callout_status:
|
||||||
|
finished: Ukončeno %{end_date}
|
||||||
|
inactive: Neaktivní
|
||||||
|
not_started: Začíná %{start_date}
|
||||||
|
open: Otevřít, začalo %{start_date}
|
||||||
|
idle_activity:
|
||||||
|
assignation_pending: Již aplikováno! Brzy správce zkontroluje vaši žádost.
|
||||||
|
assignation_rejected: Omlouváme se, Vaše žádost byla zamítnuta.
|
||||||
|
index:
|
||||||
|
empty: Zatím nejsou žádné aktivity.
|
||||||
|
milestones_list: Lidé pracující v této aktivitě
|
||||||
|
questionnaire_in_preview_mode: Na tento dotazník nelze v režimu náhledu odpovědět!
|
||||||
|
request_activity:
|
||||||
|
assignation_pending: Již aplikováno! Brzy správce zkontroluje vaši žádost.
|
||||||
|
assignation_rejected: Omlouváme se, Vaše žádost byla zamítnuta.
|
||||||
|
assignee_questionnaire: Přijměte prosím <a href="%{path}" target="_blank">Podmínky
|
||||||
|
užití</a> abyste se mohli připojit se k aktivitě.
|
||||||
|
time_tracker_activity_questionnaire_answers_serializer:
|
||||||
|
activity_description: Aktivita
|
||||||
|
activity_id: ID aktivity
|
||||||
|
created_at: Zodpovězeno
|
||||||
|
id: ID odpovědi
|
||||||
|
ip_hash: Ip Hash
|
||||||
|
registered: Registrován
|
||||||
|
task_id: ID úkolu
|
||||||
|
task_name: Úloha
|
||||||
|
unregistered: Neregistrovaný
|
||||||
|
user_status: Stav uživatele
|
||||||
|
url_aliases:
|
||||||
|
admin:
|
||||||
|
decidim:
|
||||||
|
url_aliases:
|
||||||
|
admin:
|
||||||
|
redirect_rules:
|
||||||
|
index:
|
||||||
|
'no': ne
|
||||||
|
'yes': ano
|
||||||
|
menu:
|
||||||
|
url_aliases: Přesměrování
|
||||||
|
models:
|
||||||
|
redirect_rule:
|
||||||
|
fields:
|
||||||
|
active: Aktivní
|
||||||
|
destination: Cíl
|
||||||
|
id: Id
|
||||||
|
source: Zdroj
|
||||||
|
source_is_case_sensitive: Rozlišuje velká a malá písmena
|
||||||
|
redirect_rules:
|
||||||
|
create:
|
||||||
|
error: Při vytváření přesměrování došlo k chybě.
|
||||||
|
success: Přesměrování bylo úspěšně vytvořeno.
|
||||||
|
destroy:
|
||||||
|
error: Při odstraňování přesměrování došlo k chybě.
|
||||||
|
success: Přesměrování bylo úspěšně odstraněno.
|
||||||
|
edit:
|
||||||
|
title: Upravit přesměrování
|
||||||
|
update: Aktualizace
|
||||||
|
form:
|
||||||
|
active: Aktivní
|
||||||
|
destination_example: /processes/process-slug
|
||||||
|
destination_help: Cesta, na kterou budou vaši návštěvníci přesměrováni.
|
||||||
|
Přijaty jsou pouze cíle rozpoznané aplikací.
|
||||||
|
source_example: /my-custom-url
|
||||||
|
source_help: Cesta, ze které budou vaši návštěvníci přesměrováni. Musí
|
||||||
|
začínat znakem „/“ a může obsahovat pouze písmena, číslice, pomlčky
|
||||||
|
a podtržítka.
|
||||||
|
source_is_case_sensitive: Zdroj rozlišuje velká a malá písmena
|
||||||
|
new:
|
||||||
|
create: Vytvořit
|
||||||
|
title: Nové přesměrování
|
||||||
|
no_redirect_rules: Nejsou k dispozici žádná přesměrování
|
||||||
|
update:
|
||||||
|
error: Při aktualizaci přesměrování došlo k chybě.
|
||||||
|
success: Přesměrování bylo aktualizováno
|
||||||
|
titles:
|
||||||
|
redirect_rules: Přesměrování
|
||||||
|
admin_log:
|
||||||
|
create: '%{user_name} vytvořil %{resource_name} s ID %{resource_id}'
|
||||||
|
delete: '%{user_name} smazal %{resource_name} s ID %{resource_id}'
|
||||||
|
update: '%{user_name} aktualizoval %{resource_name} s ID %{resource_id}'
|
||||||
|
format_error: musí začínat „/“ a obsahovat pouze písmena, číslice, pomlčky a
|
||||||
|
podtržítka.
|
||||||
|
verifications:
|
||||||
|
authorizations:
|
||||||
|
first_login:
|
||||||
|
actions:
|
||||||
|
direct_verifications: Přímé ověření
|
||||||
|
decidim_navbar_links:
|
||||||
|
admin:
|
||||||
|
menu:
|
||||||
|
navbar_links: Odkazy navigační lišty
|
||||||
|
devise:
|
||||||
|
failure:
|
||||||
|
user:
|
||||||
|
ldap_invalid: Neplatné jméno nebo heslo
|
||||||
|
mailer:
|
||||||
|
direct_invite:
|
||||||
|
subject: Pokyny pro pozvání
|
||||||
|
layouts:
|
||||||
|
decidim:
|
||||||
|
admin:
|
||||||
|
settings:
|
||||||
|
title: Nadpis
|
||||||
|
footer:
|
||||||
|
revoke_cookies: Odmítnutí přijetí cookies
|
||||||
|
user_profile:
|
||||||
|
time_tracker: Moje dobrovolnická práce
|
81
decidim/image.d/srv/decidim-app/config/secrets.yml
Normal file
81
decidim/image.d/srv/decidim-app/config/secrets.yml
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# Be sure to restart your server when you modify this file.
|
||||||
|
|
||||||
|
# Your secret key is used for verifying the integrity of signed cookies.
|
||||||
|
# If you change this key, all old signed cookies will become invalid!
|
||||||
|
|
||||||
|
# Make sure the secret is at least 30 characters and all random,
|
||||||
|
# no regular words or you'll be exposed to dictionary attacks.
|
||||||
|
# You can use `rails secret` to generate a secure secret key.
|
||||||
|
|
||||||
|
# Make sure the secrets in this file are kept private
|
||||||
|
# if you're sharing your code publicly.
|
||||||
|
|
||||||
|
default: &default
|
||||||
|
omniauth:
|
||||||
|
facebook:
|
||||||
|
# It must be a boolean. Remember ENV variables doesn't support booleans.
|
||||||
|
enabled: false
|
||||||
|
app_id: <%= ENV["OMNIAUTH_FACEBOOK_APP_ID"] %>
|
||||||
|
app_secret: <%= ENV["OMNIAUTH_FACEBOOK_APP_SECRET"] %>
|
||||||
|
twitter:
|
||||||
|
enabled: false
|
||||||
|
api_key: <%= ENV["OMNIAUTH_TWITTER_API_KEY"] %>
|
||||||
|
api_secret: <%= ENV["OMNIAUTH_TWITTER_API_SECRET"] %>
|
||||||
|
google_oauth2:
|
||||||
|
enabled: false
|
||||||
|
icon_path: decidim/brands/google.svg
|
||||||
|
client_id: <%= ENV["OMNIAUTH_GOOGLE_CLIENT_ID"] %>
|
||||||
|
client_secret: <%= ENV["OMNIAUTH_GOOGLE_CLIENT_SECRET"] %>
|
||||||
|
maps:
|
||||||
|
api_key: <%= ENV["MAPS_API_KEY"] %>
|
||||||
|
etherpad:
|
||||||
|
server: <%= ENV["ETHERPAD_SERVER"] %>
|
||||||
|
api_key: <%= ENV["ETHERPAD_API_KEY"] %>
|
||||||
|
api_version: "1.2.1"
|
||||||
|
bulletin_board:
|
||||||
|
identification_private_key: |
|
||||||
|
|
||||||
|
server:
|
||||||
|
api_key:
|
||||||
|
twilio:
|
||||||
|
account_sid: <%= ENV["TWILIO_ACCOUNT_SID"] %>
|
||||||
|
auth_token: <%= ENV["TWILIO_AUTH_TOKEN"] %>
|
||||||
|
sender_number: <%= ENV["TWILIO_SENDER_NUMBER"] %>
|
||||||
|
|
||||||
|
development:
|
||||||
|
<<: *default
|
||||||
|
secret_key_base: 8c1ae960e908eeb50b0a0d95ad2318277a5a8ffb3202c242ab5e8642946c8c4cffba1a8afa54e9fbe4386ab2af880ad4fd2a467d3e2e37c9b279e2badb9bfbb9
|
||||||
|
omniauth:
|
||||||
|
developer:
|
||||||
|
enabled: true
|
||||||
|
icon: phone
|
||||||
|
|
||||||
|
test:
|
||||||
|
<<: *default
|
||||||
|
secret_key_base: e6f5a697254308dcb178c4945e55e6846d4770ef2ec2d07b9926313aebc7928bcc2d7331c273a2f02b730943adb304d8dc9cd54ea55be90e31a07f2690f20636
|
||||||
|
omniauth:
|
||||||
|
facebook:
|
||||||
|
enabled: true
|
||||||
|
app_id: fake-facebook-app-id
|
||||||
|
app_secret: fake-facebook-app-secret
|
||||||
|
twitter:
|
||||||
|
enabled: true
|
||||||
|
api_key: fake-twitter-api-key
|
||||||
|
api_secret: fake-twitter-api-secret
|
||||||
|
google_oauth2:
|
||||||
|
enabled: true
|
||||||
|
client_id:
|
||||||
|
client_secret:
|
||||||
|
|
||||||
|
# Do not keep production secrets in the repository,
|
||||||
|
# instead read values from the environment.
|
||||||
|
production:
|
||||||
|
<<: *default
|
||||||
|
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
|
||||||
|
smtp_username: <%= ENV["SMTP_USERNAME"] %>
|
||||||
|
smtp_password: <%= ENV["SMTP_PASSWORD"] %>
|
||||||
|
smtp_address: <%= ENV["SMTP_ADDRESS"] %>
|
||||||
|
smtp_domain: <%= ENV["SMTP_DOMAIN"] %>
|
||||||
|
smtp_port: "587"
|
||||||
|
smtp_starttls_auto: true
|
||||||
|
smtp_authentication: "plain"
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
36
docker-compose.yml
Normal file
36
docker-compose.yml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
---
|
||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
|
||||||
|
decidim:
|
||||||
|
build: decidim
|
||||||
|
image: decidim:0.23.6-210515
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- decidim-postgres
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
expose:
|
||||||
|
- 8080
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
volumes:
|
||||||
|
- decidim_migrate:/srv/decidim-app/db/migrate
|
||||||
|
- decidim_storage:/srv/decidim-app/storage
|
||||||
|
- decidim_uploads:/srv/decidim-app/public/uploads
|
||||||
|
|
||||||
|
decidim-postgres:
|
||||||
|
image: postgres:12-alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER
|
||||||
|
- POSTGRES_PASSWORD
|
||||||
|
- POSTGRES_DB
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
decidim_migrate:
|
||||||
|
decidim_storage:
|
||||||
|
decidim_uploads:
|
||||||
|
postgres_data:
|
Loading…
Reference in New Issue
Block a user