Merge pull request #3328 from consul/admin-settings
Improve Admin settings section
This commit is contained in:
@@ -2245,76 +2245,6 @@ table {
|
|||||||
// 18. Banners
|
// 18. Banners
|
||||||
// -----------
|
// -----------
|
||||||
|
|
||||||
.banner-style-one {
|
|
||||||
background-color: $brand;
|
|
||||||
}
|
|
||||||
|
|
||||||
.banner-style-two {
|
|
||||||
background-color: $budget;
|
|
||||||
}
|
|
||||||
|
|
||||||
.banner-style-three {
|
|
||||||
background-color: #33dadf;
|
|
||||||
}
|
|
||||||
|
|
||||||
@include breakpoint(large) {
|
|
||||||
|
|
||||||
.banner-img-one {
|
|
||||||
background-image: image-url("banners/banner1.png");
|
|
||||||
}
|
|
||||||
|
|
||||||
.banner-img-two {
|
|
||||||
background-image: image-url("banners/banner2.png");
|
|
||||||
}
|
|
||||||
|
|
||||||
.banner-img-three {
|
|
||||||
background-image: image-url("banners/banner3.png");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.banner-img-one,
|
|
||||||
.banner-img-two,
|
|
||||||
.banner-img-three {
|
|
||||||
background-position: bottom right;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
}
|
|
||||||
|
|
||||||
.banner-style-one,
|
|
||||||
.banner-style-two,
|
|
||||||
.banner-style-three,
|
|
||||||
.banner {
|
|
||||||
margin: 0;
|
|
||||||
margin-bottom: $line-height;
|
|
||||||
|
|
||||||
@include breakpoint(large) {
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
width: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
a {
|
|
||||||
color: #eaeaf2;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
padding: $line-height / 2;
|
|
||||||
padding-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
padding: $line-height / 2;
|
|
||||||
padding-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover h2,
|
|
||||||
a:hover h3 {
|
|
||||||
color: #eaeaf2 !important;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 19. Recommendations
|
// 19. Recommendations
|
||||||
// -------------------
|
// -------------------
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ class Admin::SettingsController < Admin::BaseController
|
|||||||
all_settings = Setting.all.group_by { |s| s.type }
|
all_settings = Setting.all.group_by { |s| s.type }
|
||||||
@settings = all_settings['common']
|
@settings = all_settings['common']
|
||||||
@feature_flags = all_settings['feature']
|
@feature_flags = all_settings['feature']
|
||||||
@banner_styles = all_settings['banner-style']
|
|
||||||
@banner_imgs = all_settings['banner-img']
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
@@ -27,4 +25,4 @@ class Admin::SettingsController < Admin::BaseController
|
|||||||
params.require(:setting).permit(:value)
|
params.require(:setting).permit(:value)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -64,12 +64,6 @@ class ProposalsController < ApplicationController
|
|||||||
def retire_form
|
def retire_form
|
||||||
end
|
end
|
||||||
|
|
||||||
def share
|
|
||||||
if Setting['proposal_improvement_path'].present?
|
|
||||||
@proposal_improvement_path = Setting['proposal_improvement_path']
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def vote_featured
|
def vote_featured
|
||||||
@proposal.register_vote(current_user, 'yes')
|
@proposal.register_vote(current_user, 'yes')
|
||||||
set_featured_proposal_votes(@proposal)
|
set_featured_proposal_votes(@proposal)
|
||||||
|
|||||||
@@ -7,10 +7,6 @@ module ApplicationHelper
|
|||||||
request.path == '/'
|
request.path == '/'
|
||||||
end
|
end
|
||||||
|
|
||||||
def opendata_page?
|
|
||||||
request.path == '/opendata'
|
|
||||||
end
|
|
||||||
|
|
||||||
# if current path is /debates current_path_with_query_params(foo: 'bar') returns /debates?foo=bar
|
# if current path is /debates current_path_with_query_params(foo: 'bar') returns /debates?foo=bar
|
||||||
# notice: if query_params have a param which also exist in current path, it "overrides" (query_params is merged last)
|
# notice: if query_params have a param which also exist in current path, it "overrides" (query_params is merged last)
|
||||||
def current_path_with_query_params(query_parameters)
|
def current_path_with_query_params(query_parameters)
|
||||||
|
|||||||
@@ -2,16 +2,10 @@ class Setting < ActiveRecord::Base
|
|||||||
validates :key, presence: true, uniqueness: true
|
validates :key, presence: true, uniqueness: true
|
||||||
|
|
||||||
default_scope { order(id: :asc) }
|
default_scope { order(id: :asc) }
|
||||||
scope :banner_style, -> { where("key ilike ?", "banner-style.%")}
|
|
||||||
scope :banner_img, -> { where("key ilike ?", "banner-img.%")}
|
|
||||||
|
|
||||||
def type
|
def type
|
||||||
if feature_flag?
|
if feature_flag?
|
||||||
'feature'
|
'feature'
|
||||||
elsif banner_style?
|
|
||||||
'banner-style'
|
|
||||||
elsif banner_img?
|
|
||||||
'banner-img'
|
|
||||||
else
|
else
|
||||||
'common'
|
'common'
|
||||||
end
|
end
|
||||||
@@ -25,14 +19,6 @@ class Setting < ActiveRecord::Base
|
|||||||
feature_flag? && value.present?
|
feature_flag? && value.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
def banner_style?
|
|
||||||
key.start_with?('banner-style.')
|
|
||||||
end
|
|
||||||
|
|
||||||
def banner_img?
|
|
||||||
key.start_with?('banner-img.')
|
|
||||||
end
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def [](key)
|
def [](key)
|
||||||
where(key: key).pluck(:value).first.presence
|
where(key: key).pluck(:value).first.presence
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
<% if @banner_imgs.present?%>
|
|
||||||
<h2><%= t("admin.settings.index.banner_imgs") %></h2>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<% @banner_imgs.each do |setting| %>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<strong><%= t("settings.#{setting.key}") %></strong>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td>
|
|
||||||
<%= form_for(setting, url: admin_setting_path(setting), html: { id: "edit_#{dom_id(setting)}"}) do |f| %>
|
|
||||||
<%= f.text_area :value, label: false, id: dom_id(setting), lines: 1 %>
|
|
||||||
<%= f.submit(t('admin.settings.index.update_setting'), class: "button small success") %>
|
|
||||||
<% end %>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<% end %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<% else %>
|
|
||||||
<h3><%= t("admin.settings.index.no_banners_images") %></h3>
|
|
||||||
<% end %>
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
<% if @banner_styles.present? %>
|
|
||||||
<h2><%= t("admin.settings.index.banners") %></h2>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tbody>
|
|
||||||
<% @banner_styles.each do |setting| %>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<strong><%= t("settings.#{setting.key}") %></strong>
|
|
||||||
</td>
|
|
||||||
|
|
||||||
<td>
|
|
||||||
<%= form_for(setting, url: admin_setting_path(setting), html: { id: "edit_#{dom_id(setting)}"}) do |f| %>
|
|
||||||
<%= f.text_area :value, label: false, id: dom_id(setting), lines: 1 %>
|
|
||||||
<%= f.submit(t('admin.settings.index.update_setting'), class: "button hollow") %>
|
|
||||||
<% end %>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<% end %>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
<% else %>
|
|
||||||
<h3><%= t("admin.settings.index.no_banners_styles") %></h3>
|
|
||||||
<% end %>
|
|
||||||
@@ -17,18 +17,6 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="tabs-title">
|
|
||||||
<%= link_to "#tab-banner-styles" do %>
|
|
||||||
<%= t("admin.settings.index.banners") %>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="tabs-title">
|
|
||||||
<%= link_to "#tab-banner-images" do %>
|
|
||||||
<%= t("admin.settings.index.banner_imgs") %>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="tabs-title" id="map-tab">
|
<li class="tabs-title" id="map-tab">
|
||||||
<%= link_to "#tab-map-configuration" do %>
|
<%= link_to "#tab-map-configuration" do %>
|
||||||
<%= t("admin.settings.index.map.title") %>
|
<%= t("admin.settings.index.map.title") %>
|
||||||
|
|||||||
@@ -10,14 +10,6 @@
|
|||||||
<%= render "feature_flags" %>
|
<%= render "feature_flags" %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tabs-panel" id="tab-banner-styles">
|
|
||||||
<%= render "banner_styles" %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tabs-panel" id="tab-banner-images">
|
|
||||||
<%= render "banner_images" %>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="tabs-panel" id="tab-map-configuration">
|
<div class="tabs-panel" id="tab-map-configuration">
|
||||||
<%= render "map_configuration" %>
|
<%= render "map_configuration" %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -53,15 +53,6 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
</li>
|
</li>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if setting['blog_url'] %>
|
|
||||||
<li class="inline-block">
|
|
||||||
<%= link_to setting['blog_url'], target: "_blank",
|
|
||||||
title: t("shared.go_to_page") + t("social.blog", org: setting['org_name']) + t('shared.target_blank_html') do %>
|
|
||||||
<span class="show-for-sr"><%= t("social.blog", org: setting['org_name']) %></span>
|
|
||||||
<span class="icon-blog" aria-hidden="true"></span>
|
|
||||||
<% end %>
|
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
<% if setting['youtube_handle'] %>
|
<% if setting['youtube_handle'] %>
|
||||||
<li class="inline-block">
|
<li class="inline-block">
|
||||||
<%= link_to "https://www.youtube.com/#{setting['youtube_handle']}", target: "_blank",
|
<%= link_to "https://www.youtube.com/#{setting['youtube_handle']}", target: "_blank",
|
||||||
|
|||||||
@@ -27,13 +27,6 @@
|
|||||||
description: @proposal.summary
|
description: @proposal.summary
|
||||||
} %>
|
} %>
|
||||||
|
|
||||||
<% if @proposal_improvement_path.present? %>
|
|
||||||
<div class="callout highlight margin-top text-center">
|
|
||||||
<p class="lead"><strong><%= t("proposals.proposal.improve_info") %></strong></p>
|
|
||||||
<%= link_to t("proposals.proposal.improve_info_link"), @proposal_improvement_path, class: "button" %>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<div class="small margin-bottom">
|
<div class="small margin-bottom">
|
||||||
<%= link_to t("proposals.proposal.share.view_proposal"), proposal_path(@proposal) %>
|
<%= link_to t("proposals.proposal.share.view_proposal"), proposal_path(@proposal) %>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,13 +1,3 @@
|
|||||||
<ul class="no-bullet external-links">
|
<ul class="no-bullet external-links">
|
||||||
<% if setting['blog_url'] %>
|
|
||||||
<li>
|
|
||||||
<%= link_to t("layouts.header.external_link_blog"),
|
|
||||||
setting['blog_url'],
|
|
||||||
target: "_blank",
|
|
||||||
rel: "nofollow",
|
|
||||||
title: t("shared.go_to_page") + t("layouts.header.external_link_blog") + t('shared.target_blank_html') %>
|
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<%= raw content_block("top_links", I18n.locale) %>
|
<%= raw content_block("top_links", I18n.locale) %>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -1171,10 +1171,6 @@ en:
|
|||||||
flash:
|
flash:
|
||||||
updated: Value updated
|
updated: Value updated
|
||||||
index:
|
index:
|
||||||
banners: Banner styles
|
|
||||||
banner_imgs: Banner images
|
|
||||||
no_banners_images: No banner images
|
|
||||||
no_banners_styles: No banner styles
|
|
||||||
title: Configuration settings
|
title: Configuration settings
|
||||||
update_setting: Update
|
update_setting: Update
|
||||||
feature_flags: Features
|
feature_flags: Features
|
||||||
|
|||||||
@@ -219,7 +219,6 @@ en:
|
|||||||
available_locales: Available languages
|
available_locales: Available languages
|
||||||
collaborative_legislation: Collaborative legislation
|
collaborative_legislation: Collaborative legislation
|
||||||
debates: Debates
|
debates: Debates
|
||||||
external_link_blog: Blog
|
|
||||||
locale: 'Language:'
|
locale: 'Language:'
|
||||||
logo: CONSUL logo
|
logo: CONSUL logo
|
||||||
management: Management
|
management: Management
|
||||||
@@ -398,8 +397,6 @@ en:
|
|||||||
guide: "Now you can share it so people can start supporting."
|
guide: "Now you can share it so people can start supporting."
|
||||||
edit: "Before it gets shared you'll be able to change the text as you like."
|
edit: "Before it gets shared you'll be able to change the text as you like."
|
||||||
view_proposal: Not now, go to my proposal
|
view_proposal: Not now, go to my proposal
|
||||||
improve_info: "Improve your campaign and get more supports"
|
|
||||||
improve_info_link: "See more information"
|
|
||||||
already_supported: You have already supported this proposal. Share it!
|
already_supported: You have already supported this proposal. Share it!
|
||||||
comments:
|
comments:
|
||||||
one: 1 comment
|
one: 1 comment
|
||||||
@@ -624,7 +621,6 @@ en:
|
|||||||
see_more: See more recommendations
|
see_more: See more recommendations
|
||||||
hide: Hide recommendations
|
hide: Hide recommendations
|
||||||
social:
|
social:
|
||||||
blog: "%{org} Blog"
|
|
||||||
facebook: "%{org} Facebook"
|
facebook: "%{org} Facebook"
|
||||||
twitter: "%{org} Twitter"
|
twitter: "%{org} Twitter"
|
||||||
youtube: "%{org} YouTube"
|
youtube: "%{org} YouTube"
|
||||||
|
|||||||
@@ -46,12 +46,10 @@ en:
|
|||||||
instagram_handle_description: "If filled in it will appear in the footer"
|
instagram_handle_description: "If filled in it will appear in the footer"
|
||||||
url: "Main URL"
|
url: "Main URL"
|
||||||
url_description: "Main URL of your website"
|
url_description: "Main URL of your website"
|
||||||
org_name: "Organization"
|
org_name: "Site name"
|
||||||
org_name_description: "Name of your organization"
|
org_name_description: "This name will appear on mailers subject, help pages..."
|
||||||
place_name: "Place"
|
|
||||||
place_name_description: "Name of your city"
|
|
||||||
related_content_score_threshold: "Related content score threshold"
|
related_content_score_threshold: "Related content score threshold"
|
||||||
related_content_score_threshold_description: "Hides content that users mark as unrelated"
|
related_content_score_threshold_description: "According to the rating of votes in a related content, hides content that users mark as unrelated"
|
||||||
hot_score_period_in_days: "Period (days) used by the filter 'most active'"
|
hot_score_period_in_days: "Period (days) used by the filter 'most active'"
|
||||||
hot_score_period_in_days_description: "The filter 'most active' used in multiple sections will be based on the votes during the last X days"
|
hot_score_period_in_days_description: "The filter 'most active' used in multiple sections will be based on the votes during the last X days"
|
||||||
map_latitude: "Latitude"
|
map_latitude: "Latitude"
|
||||||
@@ -61,7 +59,7 @@ en:
|
|||||||
map_zoom: "Zoom"
|
map_zoom: "Zoom"
|
||||||
map_zoom_description: "Zoom to show the map position"
|
map_zoom_description: "Zoom to show the map position"
|
||||||
mailer_from_name: "Sender email name"
|
mailer_from_name: "Sender email name"
|
||||||
mailer_from_name_description: "This name will appear in emails sent from the application"
|
mailer_from_name_description: "This name will appear as sender name in emails sent from the application"
|
||||||
mailer_from_address: "Sender email address"
|
mailer_from_address: "Sender email address"
|
||||||
mailer_from_address_description: "This email address will appear in emails sent from the application"
|
mailer_from_address_description: "This email address will appear in emails sent from the application"
|
||||||
meta_title: "Site title (SEO)"
|
meta_title: "Site title (SEO)"
|
||||||
@@ -71,13 +69,13 @@ en:
|
|||||||
meta_keywords: "Keywords (SEO)"
|
meta_keywords: "Keywords (SEO)"
|
||||||
meta_keywords_description: 'Keywords <meta name="keywords">, used to improve SEO'
|
meta_keywords_description: 'Keywords <meta name="keywords">, used to improve SEO'
|
||||||
min_age_to_participate: Minimum age needed to participate
|
min_age_to_participate: Minimum age needed to participate
|
||||||
min_age_to_participate_description: "Users over this age can participate in all processes"
|
min_age_to_participate_description: "Users over this age can participate in all processes where a user verified account is needed"
|
||||||
analytics_url: "Analytics URL"
|
analytics_url: "Analytics URL"
|
||||||
blog_url: "Blog URL"
|
|
||||||
transparency_url: "Transparency URL"
|
|
||||||
opendata_url: "Open Data URL"
|
|
||||||
verification_offices_url: Verification offices URL
|
verification_offices_url: Verification offices URL
|
||||||
proposal_improvement_path: Proposal improvement info internal link
|
proposal_notification_minimum_interval_in_days: "Minimum interval (in days) for authors of proposals to send new proposal notifications"
|
||||||
|
proposal_notification_minimum_interval_in_days_description: "The number of days user can send a notification for all supporters of their proposal"
|
||||||
|
direct_message_max_per_day: "Direct Message max number per day"
|
||||||
|
direct_message_max_per_day_description: "Number max of direct messages one user can send per day"
|
||||||
feature:
|
feature:
|
||||||
budgets: "Participatory budgeting"
|
budgets: "Participatory budgeting"
|
||||||
budgets_description: "With participatory budgets, citizens decide which projects presented by their neighbours will receive a part of the municipal budget"
|
budgets_description: "With participatory budgets, citizens decide which projects presented by their neighbours will receive a part of the municipal budget"
|
||||||
@@ -126,4 +124,4 @@ en:
|
|||||||
public_stats: "Public stats"
|
public_stats: "Public stats"
|
||||||
public_stats_description: "Display public stats in the Administration panel"
|
public_stats_description: "Display public stats in the Administration panel"
|
||||||
help_page: "Help page"
|
help_page: "Help page"
|
||||||
help_page_description: "Displays a Help menu that contains a page with an info section about each enabled feature"
|
help_page_description: 'Displays a Help menu that contains a page with an info section about each enabled feature. Also custom pages and menus can be created in the "Custom pages" and "Custom content blocks" sections'
|
||||||
|
|||||||
@@ -1170,10 +1170,6 @@ es:
|
|||||||
flash:
|
flash:
|
||||||
updated: Valor actualizado
|
updated: Valor actualizado
|
||||||
index:
|
index:
|
||||||
banners: Estilo del banner
|
|
||||||
banner_imgs: Imagenes del banner
|
|
||||||
no_banners_images: No hay imagenes de banner
|
|
||||||
no_banners_styles: No hay estilos de banner
|
|
||||||
title: Configuración global
|
title: Configuración global
|
||||||
update_setting: Actualizar
|
update_setting: Actualizar
|
||||||
feature_flags: Funcionalidades
|
feature_flags: Funcionalidades
|
||||||
|
|||||||
@@ -219,7 +219,6 @@ es:
|
|||||||
available_locales: Idiomas disponibles
|
available_locales: Idiomas disponibles
|
||||||
collaborative_legislation: Legislación colaborativa
|
collaborative_legislation: Legislación colaborativa
|
||||||
debates: Debates
|
debates: Debates
|
||||||
external_link_blog: Blog
|
|
||||||
locale: 'Idioma:'
|
locale: 'Idioma:'
|
||||||
logo: Logo de CONSUL
|
logo: Logo de CONSUL
|
||||||
management: Gestión
|
management: Gestión
|
||||||
@@ -398,8 +397,6 @@ es:
|
|||||||
guide: "Compártela para que la gente empiece a apoyarla."
|
guide: "Compártela para que la gente empiece a apoyarla."
|
||||||
edit: "Antes de que se publique podrás modificar el texto a tu gusto."
|
edit: "Antes de que se publique podrás modificar el texto a tu gusto."
|
||||||
view_proposal: Ahora no, ir a mi propuesta
|
view_proposal: Ahora no, ir a mi propuesta
|
||||||
improve_info: "Mejora tu campaña y consigue más apoyos"
|
|
||||||
improve_info_link: "Ver más información"
|
|
||||||
already_supported: '¡Ya has apoyado esta propuesta, compártela!'
|
already_supported: '¡Ya has apoyado esta propuesta, compártela!'
|
||||||
comments:
|
comments:
|
||||||
zero: Sin comentarios
|
zero: Sin comentarios
|
||||||
@@ -623,7 +620,6 @@ es:
|
|||||||
see_more: Ver más recomendaciones
|
see_more: Ver más recomendaciones
|
||||||
hide: Ocultar recomendaciones
|
hide: Ocultar recomendaciones
|
||||||
social:
|
social:
|
||||||
blog: "Blog de %{org}"
|
|
||||||
facebook: "Facebook de %{org}"
|
facebook: "Facebook de %{org}"
|
||||||
twitter: "Twitter de %{org}"
|
twitter: "Twitter de %{org}"
|
||||||
youtube: "YouTube de %{org}"
|
youtube: "YouTube de %{org}"
|
||||||
|
|||||||
@@ -46,12 +46,10 @@ es:
|
|||||||
instagram_handle_description: "Si está rellenado aparecerá en el pie de página"
|
instagram_handle_description: "Si está rellenado aparecerá en el pie de página"
|
||||||
url: "URL general de la web"
|
url: "URL general de la web"
|
||||||
url_description: "URL principal de tu web"
|
url_description: "URL principal de tu web"
|
||||||
org_name: "Nombre de la organización"
|
org_name: "Nombre del sitio"
|
||||||
org_name_description: "Nombre de tu organización"
|
org_name_description: "Este nombre aparecerá en el asunto de emails, páginas de ayuda..."
|
||||||
place_name: "Nombre del lugar"
|
|
||||||
place_name_description: "Nombre de tu ciudad"
|
|
||||||
related_content_score_threshold: "Umbral de puntuación de contenido relacionado"
|
related_content_score_threshold: "Umbral de puntuación de contenido relacionado"
|
||||||
related_content_score_threshold_description: "Oculta el contenido que los usuarios marquen como no relacionado"
|
related_content_score_threshold_description: "Según la puntuación de votos en un contenido relacionado, oculta el contenido que los usuarios marquen como no relacionado"
|
||||||
hot_score_period_in_days: "Periodo (días) usado para el filtro 'Más Activos'"
|
hot_score_period_in_days: "Periodo (días) usado para el filtro 'Más Activos'"
|
||||||
hot_score_period_in_days_description: "El filtro 'Más Activos' usado en diferentes secciones se basará en los votos de los últimos X días"
|
hot_score_period_in_days_description: "El filtro 'Más Activos' usado en diferentes secciones se basará en los votos de los últimos X días"
|
||||||
map_latitude: "Latitud"
|
map_latitude: "Latitud"
|
||||||
@@ -61,7 +59,7 @@ es:
|
|||||||
map_zoom: "Zoom"
|
map_zoom: "Zoom"
|
||||||
map_zoom_description: "Zoom para mostrar la posición del mapa"
|
map_zoom_description: "Zoom para mostrar la posición del mapa"
|
||||||
mailer_from_name: "Nombre email remitente"
|
mailer_from_name: "Nombre email remitente"
|
||||||
mailer_from_name_description: "Este nombre aparecerá en los emails enviados desde la aplicación"
|
mailer_from_name_description: "Este nombre aparecerá como nombre del remitente en los emails enviados desde la aplicación"
|
||||||
mailer_from_address: "Dirección email remitente"
|
mailer_from_address: "Dirección email remitente"
|
||||||
mailer_from_address_description: "Esta dirección de email aparecerá en los emails enviados desde la aplicación"
|
mailer_from_address_description: "Esta dirección de email aparecerá en los emails enviados desde la aplicación"
|
||||||
meta_title: "Título del sitio (SEO)"
|
meta_title: "Título del sitio (SEO)"
|
||||||
@@ -71,13 +69,13 @@ es:
|
|||||||
meta_keywords: "Palabras clave (SEO)"
|
meta_keywords: "Palabras clave (SEO)"
|
||||||
meta_keywords_description: 'Palabras clave <meta name="keywords">, utilizadas para mejorar el SEO'
|
meta_keywords_description: 'Palabras clave <meta name="keywords">, utilizadas para mejorar el SEO'
|
||||||
min_age_to_participate: Edad mínima para participar
|
min_age_to_participate: Edad mínima para participar
|
||||||
min_age_to_participate_description: "Los usuarios mayores de esta edad podrán participar en todos los procesos"
|
min_age_to_participate_description: "Los usuarios mayores de esta edad podrán participar en todos los procesos donde se necesite una cueta verificada"
|
||||||
analytics_url: "URL de estadísticas externas"
|
analytics_url: "URL de estadísticas externas"
|
||||||
blog_url: "URL del blog"
|
|
||||||
transparency_url: "URL de transparencia"
|
|
||||||
opendata_url: "URL de open data"
|
|
||||||
verification_offices_url: URL oficinas verificación
|
verification_offices_url: URL oficinas verificación
|
||||||
proposal_improvement_path: Link a información para mejorar propuestas
|
proposal_notification_minimum_interval_in_days: "Intervalo mínimo (en días) para que los autores de propuestas puedan enviar nuevas notificaciones de propuesta"
|
||||||
|
proposal_notification_minimum_interval_in_days_description: "El número de días en los que un usuario puede enviar una notificación a todos los que apoyan su propuesta"
|
||||||
|
direct_message_max_per_day: "Mensajes directos máximos por día"
|
||||||
|
direct_message_max_per_day_description: "Número de mensajes directos máximos que un usuario puede enviar por día"
|
||||||
feature:
|
feature:
|
||||||
budgets: "Presupuestos participativos"
|
budgets: "Presupuestos participativos"
|
||||||
budgets_description: "Con los presupuestos participativos la ciudadanía decide a qué proyectos presentados por los vecinos y vecinas va destinada una parte del presupuesto municipal"
|
budgets_description: "Con los presupuestos participativos la ciudadanía decide a qué proyectos presentados por los vecinos y vecinas va destinada una parte del presupuesto municipal"
|
||||||
@@ -126,4 +124,4 @@ es:
|
|||||||
public_stats: "Estadísticas públicas"
|
public_stats: "Estadísticas públicas"
|
||||||
public_stats_description: "Muestra las estadísticas públicas en el panel de Administración"
|
public_stats_description: "Muestra las estadísticas públicas en el panel de Administración"
|
||||||
help_page: "Página de ayuda"
|
help_page: "Página de ayuda"
|
||||||
help_page_description: "Muestra un menú Ayuda que contiene una página con una sección de información sobre cada funcionalidad habilitada"
|
help_page_description: 'Muestra un menú Ayuda que contiene una página con una sección de información sobre cada funcionalidad habilitada. También se pueden crear páginas y menús personalizados en las secciones "Personalizar páginas" y "Personalizar bloques"'
|
||||||
|
|||||||
@@ -48,6 +48,5 @@ Rails.application.routes.draw do
|
|||||||
get 'help/faq', to: 'pages#show', id: 'help/faq/index', as: 'faq'
|
get 'help/faq', to: 'pages#show', id: 'help/faq/index', as: 'faq'
|
||||||
|
|
||||||
# Static pages
|
# Static pages
|
||||||
get '/blog' => redirect("http://blog.consul/")
|
|
||||||
resources :pages, path: '/', only: [:show]
|
resources :pages, path: '/', only: [:show]
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
require 'database_cleaner'
|
require "database_cleaner"
|
||||||
DatabaseCleaner.clean_with :truncation
|
DatabaseCleaner.clean_with :truncation
|
||||||
@logger = Logger.new(STDOUT)
|
@logger = Logger.new(STDOUT)
|
||||||
@logger.formatter = proc do |_severity, _datetime, _progname, msg|
|
@logger.formatter = proc do |_severity, _datetime, _progname, msg|
|
||||||
@@ -8,7 +8,7 @@ DatabaseCleaner.clean_with :truncation
|
|||||||
def section(section_title)
|
def section(section_title)
|
||||||
@logger.info section_title
|
@logger.info section_title
|
||||||
yield
|
yield
|
||||||
log(' ✅')
|
log(" ✅")
|
||||||
end
|
end
|
||||||
|
|
||||||
def log(msg)
|
def log(msg)
|
||||||
@@ -19,27 +19,27 @@ def random_locales
|
|||||||
[I18n.default_locale, *I18n.available_locales.sample(4)].uniq
|
[I18n.default_locale, *I18n.available_locales.sample(4)].uniq
|
||||||
end
|
end
|
||||||
|
|
||||||
require_relative 'dev_seeds/settings'
|
require_relative "dev_seeds/settings"
|
||||||
require_relative 'dev_seeds/geozones'
|
require_relative "dev_seeds/geozones"
|
||||||
require_relative 'dev_seeds/users'
|
require_relative "dev_seeds/users"
|
||||||
require_relative 'dev_seeds/tags_categories'
|
require_relative "dev_seeds/tags_categories"
|
||||||
require_relative 'dev_seeds/debates'
|
require_relative "dev_seeds/debates"
|
||||||
require_relative 'dev_seeds/proposals'
|
require_relative "dev_seeds/proposals"
|
||||||
require_relative 'dev_seeds/budgets'
|
require_relative "dev_seeds/budgets"
|
||||||
require_relative 'dev_seeds/spending_proposals'
|
require_relative "dev_seeds/spending_proposals"
|
||||||
require_relative 'dev_seeds/comments'
|
require_relative "dev_seeds/comments"
|
||||||
require_relative 'dev_seeds/votes'
|
require_relative "dev_seeds/votes"
|
||||||
require_relative 'dev_seeds/flags'
|
require_relative "dev_seeds/flags"
|
||||||
require_relative 'dev_seeds/hiddings'
|
require_relative "dev_seeds/hiddings"
|
||||||
require_relative 'dev_seeds/banners'
|
require_relative "dev_seeds/banners"
|
||||||
require_relative 'dev_seeds/polls'
|
require_relative "dev_seeds/polls"
|
||||||
require_relative 'dev_seeds/communities'
|
require_relative "dev_seeds/communities"
|
||||||
require_relative 'dev_seeds/legislation_processes'
|
require_relative "dev_seeds/legislation_processes"
|
||||||
require_relative 'dev_seeds/newsletters'
|
require_relative "dev_seeds/newsletters"
|
||||||
require_relative 'dev_seeds/notifications'
|
require_relative "dev_seeds/notifications"
|
||||||
require_relative 'dev_seeds/widgets'
|
require_relative "dev_seeds/widgets"
|
||||||
require_relative 'dev_seeds/admin_notifications'
|
require_relative "dev_seeds/admin_notifications"
|
||||||
require_relative 'dev_seeds/legislation_proposals'
|
require_relative "dev_seeds/legislation_proposals"
|
||||||
require_relative 'dev_seeds/milestones'
|
require_relative "dev_seeds/milestones"
|
||||||
|
|
||||||
log "All dev seeds created successfuly 👍"
|
log "All dev seeds created successfuly 👍"
|
||||||
|
|||||||
@@ -1,44 +1,47 @@
|
|||||||
section "Creating Admin Notifications & Templates" do
|
section "Creating Admin Notifications & Templates" do
|
||||||
AdminNotification.create!(
|
AdminNotification.create!(
|
||||||
title_en: 'Do you have a proposal?',
|
title_en: "Do you have a proposal?",
|
||||||
title_es: 'Tienes una propuesta?',
|
title_es: "Tienes una propuesta?",
|
||||||
|
|
||||||
body_en: 'Remember you can create a proposal with your ideas and people will discuss & support it.',
|
body_en: "Remember you can create a proposal with your ideas and "\
|
||||||
body_es: 'Recuerda que puedes crear propuestas y los ciudadanos las debatirán y apoyarán.',
|
"people will discuss & support it.",
|
||||||
|
body_es: "Recuerda que puedes crear propuestas y los ciudadanos las debatirán y apoyarán.",
|
||||||
|
|
||||||
link: Setting['url'] + '/proposals',
|
link: Setting["url"] + "/proposals",
|
||||||
segment_recipient: 'administrators'
|
segment_recipient: "administrators"
|
||||||
).deliver
|
).deliver
|
||||||
|
|
||||||
AdminNotification.create!(
|
AdminNotification.create!(
|
||||||
title_en: 'Help us translate consul',
|
title_en: "Help us translate consul",
|
||||||
title_es: 'Ayúdanos a traducir CONSUL',
|
title_es: "Ayúdanos a traducir CONSUL",
|
||||||
|
|
||||||
body_en: 'If you are proficient in a language, please help us translate consul!.',
|
body_en: "If you are proficient in a language, please help us translate consul!.",
|
||||||
body_es: 'Si dominas un idioma, ayúdanos a completar su traducción en CONSUL.',
|
body_es: "Si dominas un idioma, ayúdanos a completar su traducción en CONSUL.",
|
||||||
|
|
||||||
link: 'https://crwd.in/consul',
|
link: "https://crwd.in/consul",
|
||||||
segment_recipient: 'administrators'
|
segment_recipient: "administrators"
|
||||||
).deliver
|
).deliver
|
||||||
|
|
||||||
AdminNotification.create!(
|
AdminNotification.create!(
|
||||||
title_en: 'You can now geolocate proposals & investments',
|
title_en: "You can now geolocate proposals & investments",
|
||||||
title_es: 'Ahora puedes geolocalizar propuestas y proyectos de inversión',
|
title_es: "Ahora puedes geolocalizar propuestas y proyectos de inversión",
|
||||||
|
|
||||||
body_en: 'When you create a proposal or investment you now can specify a point on a map',
|
body_en: "When you create a proposal or investment you now can specify a point on a map",
|
||||||
body_es: 'Cuando crees una propuesta o proyecto de inversión podrás especificar su localización en el mapa',
|
body_es: "Cuando crees una propuesta o proyecto de inversión podrás especificar "\
|
||||||
|
"su localización en el mapa",
|
||||||
|
|
||||||
segment_recipient: 'administrators'
|
segment_recipient: "administrators"
|
||||||
).deliver
|
).deliver
|
||||||
|
|
||||||
AdminNotification.create!(
|
AdminNotification.create!(
|
||||||
title_en: 'We are closing the Participatory Budget!!',
|
title_en: "We are closing the Participatory Budget!!",
|
||||||
title_es: 'Últimos días para crear proyectos de Presupuestos Participativos',
|
title_es: "Últimos días para crear proyectos de Presupuestos Participativos",
|
||||||
|
|
||||||
body_en: 'Hurry up and create a last proposal before it ends next in few days!',
|
body_en: "Hurry up and create a last proposal before it ends next in few days!",
|
||||||
body_es: 'Quedan pocos dias para que se cierre el plazo de presentación de proyectos de inversión para los presupuestos participativos!',
|
body_es: "Quedan pocos dias para que se cierre el plazo de presentación de proyectos de "\
|
||||||
|
"inversión para los presupuestos participativos!",
|
||||||
|
|
||||||
segment_recipient: 'administrators',
|
segment_recipient: "administrators",
|
||||||
sent_at: nil
|
sent_at: nil
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
section "Creating banners" do
|
section "Creating banners" do
|
||||||
Proposal.last(3).each do |proposal|
|
Proposal.last(3).each do |proposal|
|
||||||
title = Faker::Lorem.sentence(word_count = 3)
|
title = Faker::Lorem.sentence(3)
|
||||||
description = Faker::Lorem.sentence(word_count = 12)
|
description = Faker::Lorem.sentence(12)
|
||||||
target_url = Rails.application.routes.url_helpers.proposal_path(proposal)
|
target_url = Rails.application.routes.url_helpers.proposal_path(proposal)
|
||||||
banner = Banner.new(title: title,
|
banner = Banner.new(title: title,
|
||||||
description: description,
|
description: description,
|
||||||
@@ -20,9 +20,9 @@ section "Creating banners" do
|
|||||||
end
|
end
|
||||||
|
|
||||||
section "Creating web sections" do
|
section "Creating web sections" do
|
||||||
WebSection.create(name: 'homepage')
|
WebSection.create(name: "homepage")
|
||||||
WebSection.create(name: 'debates')
|
WebSection.create(name: "debates")
|
||||||
WebSection.create(name: 'proposals')
|
WebSection.create(name: "proposals")
|
||||||
WebSection.create(name: 'budgets')
|
WebSection.create(name: "budgets")
|
||||||
WebSection.create(name: 'help_page')
|
WebSection.create(name: "help_page")
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
INVESTMENT_IMAGE_FILES = %w{
|
INVESTMENT_IMAGE_FILES = %w[
|
||||||
brennan-ehrhardt-25066-unsplash_713x513.jpg
|
brennan-ehrhardt-25066-unsplash_713x513.jpg
|
||||||
carl-nenzen-loven-381554-unsplash_713x475.jpg
|
carl-nenzen-loven-381554-unsplash_713x475.jpg
|
||||||
carlos-zurita-215387-unsplash_713x475.jpg
|
carlos-zurita-215387-unsplash_713x475.jpg
|
||||||
hector-arguello-canals-79584-unsplash_713x475.jpg
|
hector-arguello-canals-79584-unsplash_713x475.jpg
|
||||||
olesya-grichina-218176-unsplash_713x475.jpg
|
olesya-grichina-218176-unsplash_713x475.jpg
|
||||||
sole-d-alessandro-340443-unsplash_713x475.jpg
|
sole-d-alessandro-340443-unsplash_713x475.jpg
|
||||||
}.map do |filename|
|
].map do |filename|
|
||||||
File.new(Rails.root.join("db",
|
File.new(Rails.root.join("db",
|
||||||
"dev_seeds",
|
"dev_seeds",
|
||||||
"images",
|
"images",
|
||||||
@@ -129,10 +129,10 @@ section "Creating Investments" do
|
|||||||
title: Faker::Lorem.sentence(3).truncate(60),
|
title: Faker::Lorem.sentence(3).truncate(60),
|
||||||
description: "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>",
|
description: "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>",
|
||||||
created_at: rand((Time.current - 1.week)..Time.current),
|
created_at: rand((Time.current - 1.week)..Time.current),
|
||||||
feasibility: %w{undecided unfeasible feasible feasible feasible feasible}.sample,
|
feasibility: %w[undecided unfeasible feasible feasible feasible feasible].sample,
|
||||||
unfeasibility_explanation: Faker::Lorem.paragraph,
|
unfeasibility_explanation: Faker::Lorem.paragraph,
|
||||||
valuation_finished: [false, true].sample,
|
valuation_finished: [false, true].sample,
|
||||||
tag_list: tags.sample(3).join(','),
|
tag_list: tags.sample(3).join(","),
|
||||||
price: rand(1..100) * 100000,
|
price: rand(1..100) * 100000,
|
||||||
skip_map: "1",
|
skip_map: "1",
|
||||||
terms_of_service: "1"
|
terms_of_service: "1"
|
||||||
@@ -151,9 +151,9 @@ end
|
|||||||
section "Geolocating Investments" do
|
section "Geolocating Investments" do
|
||||||
Budget.find_each do |budget|
|
Budget.find_each do |budget|
|
||||||
budget.investments.each do |investment|
|
budget.investments.each do |investment|
|
||||||
MapLocation.create(latitude: Setting['map_latitude'].to_f + rand(-10..10)/100.to_f,
|
MapLocation.create(latitude: Setting["map_latitude"].to_f + rand(-10..10)/100.to_f,
|
||||||
longitude: Setting['map_longitude'].to_f + rand(-10..10)/100.to_f,
|
longitude: Setting["map_longitude"].to_f + rand(-10..10)/100.to_f,
|
||||||
zoom: Setting['map_zoom'],
|
zoom: Setting["map_zoom"],
|
||||||
investment_id: investment.id)
|
investment_id: investment.id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -175,7 +175,7 @@ section "Winner Investments" do
|
|||||||
group: heading.group,
|
group: heading.group,
|
||||||
budget: heading.group.budget,
|
budget: heading.group.budget,
|
||||||
title: Faker::Lorem.sentence(3).truncate(60),
|
title: Faker::Lorem.sentence(3).truncate(60),
|
||||||
description: "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>",
|
description: "<p>#{Faker::Lorem.paragraphs.join("</p><p>")}</p>",
|
||||||
created_at: rand((Time.current - 1.week)..Time.current),
|
created_at: rand((Time.current - 1.week)..Time.current),
|
||||||
feasibility: "feasible",
|
feasibility: "feasible",
|
||||||
valuation_finished: true,
|
valuation_finished: true,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
section "Commenting Investments, Debates & Proposals" do
|
section "Commenting Investments, Debates & Proposals" do
|
||||||
%w(Budget::Investment Debate Proposal).each do |commentable_class|
|
%w[Budget::Investment Debate Proposal].each do |commentable_class|
|
||||||
100.times do
|
100.times do
|
||||||
commentable = commentable_class.constantize.all.sample
|
commentable = commentable_class.constantize.all.sample
|
||||||
Comment.create!(user: User.all.sample,
|
Comment.create!(user: User.all.sample,
|
||||||
|
|||||||
@@ -3,25 +3,25 @@ section "Creating Debates" do
|
|||||||
30.times do
|
30.times do
|
||||||
author = User.all.sample
|
author = User.all.sample
|
||||||
description = "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>"
|
description = "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>"
|
||||||
debate = Debate.create!(author: author,
|
Debate.create!(author: author,
|
||||||
title: Faker::Lorem.sentence(3).truncate(60),
|
title: Faker::Lorem.sentence(3).truncate(60),
|
||||||
created_at: rand((Time.current - 1.week)..Time.current),
|
created_at: rand((Time.current - 1.week)..Time.current),
|
||||||
description: description,
|
description: description,
|
||||||
tag_list: tags.sample(3).join(','),
|
tag_list: tags.sample(3).join(","),
|
||||||
geozone: Geozone.all.sample,
|
geozone: Geozone.all.sample,
|
||||||
terms_of_service: "1")
|
terms_of_service: "1")
|
||||||
end
|
end
|
||||||
|
|
||||||
tags = ActsAsTaggableOn::Tag.where(kind: 'category')
|
tags = ActsAsTaggableOn::Tag.where(kind: "category")
|
||||||
30.times do
|
30.times do
|
||||||
author = User.all.sample
|
author = User.all.sample
|
||||||
description = "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>"
|
description = "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>"
|
||||||
debate = Debate.create!(author: author,
|
Debate.create!(author: author,
|
||||||
title: Faker::Lorem.sentence(3).truncate(60),
|
title: Faker::Lorem.sentence(3).truncate(60),
|
||||||
created_at: rand((Time.current - 1.week)..Time.current),
|
created_at: rand((Time.current - 1.week)..Time.current),
|
||||||
description: description,
|
description: description,
|
||||||
tag_list: tags.sample(3).join(','),
|
tag_list: tags.sample(3).join(","),
|
||||||
geozone: Geozone.all.sample,
|
geozone: Geozone.all.sample,
|
||||||
terms_of_service: "1")
|
terms_of_service: "1")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,22 +1,22 @@
|
|||||||
section "Creating Geozones" do
|
section "Creating Geozones" do
|
||||||
Geozone.create(name: I18n.t('seeds.geozones.north_district'),
|
Geozone.create(name: I18n.t("seeds.geozones.north_district"),
|
||||||
external_code: "001", census_code: "01",
|
external_code: "001", census_code: "01",
|
||||||
html_map_coordinates: "30,139,45,153,77,148,107,165,138,201,146,218,186,198,216,"\
|
html_map_coordinates: "30,139,45,153,77,148,107,165,138,201,146,218,186,198,216,"\
|
||||||
"196,233,203,240,215,283,194,329,185,377,184,388,165,369,126,333,113,334,84,320,"\
|
"196,233,203,240,215,283,194,329,185,377,184,388,165,369,126,333,113,334,84,320,"\
|
||||||
"66,286,73,258,65,265,57,249,47,207,58,159,84,108,85,72,101,51,114")
|
"66,286,73,258,65,265,57,249,47,207,58,159,84,108,85,72,101,51,114")
|
||||||
Geozone.create(name: I18n.t('seeds.geozones.west_district'),
|
Geozone.create(name: I18n.t("seeds.geozones.west_district"),
|
||||||
external_code: "002", census_code: "02",
|
external_code: "002", census_code: "02",
|
||||||
html_map_coordinates: "42,153,31,176,24,202,20,221,44,235,59,249,55,320,30,354,"\
|
html_map_coordinates: "42,153,31,176,24,202,20,221,44,235,59,249,55,320,30,354,"\
|
||||||
"31,372,52,396,64,432,89,453,116,432,149,419,162,412,165,377,172,357,189,352,228,"\
|
"31,372,52,396,64,432,89,453,116,432,149,419,162,412,165,377,172,357,189,352,228,"\
|
||||||
"327,246,313,262,297,234,291,210,284,193,284,176,294,158,303,154,310,146,289,140,"\
|
"327,246,313,262,297,234,291,210,284,193,284,176,294,158,303,154,310,146,289,140,"\
|
||||||
"268,138,246,135,236,139,222,151,214,136,197,120,179,99,159,85,149,65,149,56,149")
|
"268,138,246,135,236,139,222,151,214,136,197,120,179,99,159,85,149,65,149,56,149")
|
||||||
Geozone.create(name: I18n.t('seeds.geozones.east_district'),
|
Geozone.create(name: I18n.t("seeds.geozones.east_district"),
|
||||||
external_code: "003", census_code: "03",
|
external_code: "003", census_code: "03",
|
||||||
html_map_coordinates: "175,353,162,378,161,407,153,416,167,432,184,447,225,426,"\
|
html_map_coordinates: "175,353,162,378,161,407,153,416,167,432,184,447,225,426,"\
|
||||||
"250,409,283,390,298,369,344,363,351,334,356,296,361,267,376,245,378,185,327,188,"\
|
"250,409,283,390,298,369,344,363,351,334,356,296,361,267,376,245,378,185,327,188,"\
|
||||||
"281,195,239,216,245,221,245,232,261,244,281,238,300,242,304,251,285,262,278,277,"\
|
"281,195,239,216,245,221,245,232,261,244,281,238,300,242,304,251,285,262,278,277,"\
|
||||||
"267,294,249,312,219,333,198,346,184,353")
|
"267,294,249,312,219,333,198,346,184,353")
|
||||||
Geozone.create(name: I18n.t('seeds.geozones.central_district'),
|
Geozone.create(name: I18n.t("seeds.geozones.central_district"),
|
||||||
external_code: "004", census_code: "04",
|
external_code: "004", census_code: "04",
|
||||||
html_map_coordinates: "152,308,137,258,133,235,147,216,152,214,186,194,210,196,"\
|
html_map_coordinates: "152,308,137,258,133,235,147,216,152,214,186,194,210,196,"\
|
||||||
"228,202,240,216,241,232,263,243,293,241,301,245,302,254,286,265,274,278,267,296,"\
|
"228,202,240,216,241,232,263,243,293,241,301,245,302,254,286,265,274,278,267,296,"\
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ section "Creating legislation proposals" do
|
|||||||
summary: Faker::Lorem.paragraph,
|
summary: Faker::Lorem.paragraph,
|
||||||
author: User.all.sample,
|
author: User.all.sample,
|
||||||
process: Legislation::Process.all.sample,
|
process: Legislation::Process.all.sample,
|
||||||
terms_of_service: '1',
|
terms_of_service: "1",
|
||||||
selected: rand <= 1.0 / 3)
|
selected: rand <= 1.0 / 3)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
section "Creating default Milestone Statuses" do
|
section "Creating default Milestone Statuses" do
|
||||||
Milestone::Status.create(name: I18n.t('seeds.budgets.statuses.studying_project'))
|
Milestone::Status.create(name: I18n.t("seeds.budgets.statuses.studying_project"))
|
||||||
Milestone::Status.create(name: I18n.t('seeds.budgets.statuses.bidding'))
|
Milestone::Status.create(name: I18n.t("seeds.budgets.statuses.bidding"))
|
||||||
Milestone::Status.create(name: I18n.t('seeds.budgets.statuses.executing_project'))
|
Milestone::Status.create(name: I18n.t("seeds.budgets.statuses.executing_project"))
|
||||||
Milestone::Status.create(name: I18n.t('seeds.budgets.statuses.executed'))
|
Milestone::Status.create(name: I18n.t("seeds.budgets.statuses.executed"))
|
||||||
end
|
end
|
||||||
|
|
||||||
section "Creating investment milestones" do
|
section "Creating investment milestones" do
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ section "Creating Newsletters" do
|
|||||||
Newsletter.create!(
|
Newsletter.create!(
|
||||||
subject: "Newsletter subject #{n}",
|
subject: "Newsletter subject #{n}",
|
||||||
segment_recipient: UserSegments::SEGMENTS.sample,
|
segment_recipient: UserSegments::SEGMENTS.sample,
|
||||||
from: 'no-reply@consul.dev',
|
from: "no-reply@consul.dev",
|
||||||
body: newsletter_body.sample,
|
body: newsletter_body.sample,
|
||||||
sent_at: [Time.now, nil].sample
|
sent_at: [Time.now, nil].sample
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ section "Creating comment notifications" do
|
|||||||
debate = Debate.create!(author: user,
|
debate = Debate.create!(author: user,
|
||||||
title: Faker::Lorem.sentence(3).truncate(60),
|
title: Faker::Lorem.sentence(3).truncate(60),
|
||||||
description: "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>",
|
description: "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>",
|
||||||
tag_list: ActsAsTaggableOn::Tag.all.sample(3).join(','),
|
tag_list: ActsAsTaggableOn::Tag.all.sample(3).join(","),
|
||||||
geozone: Geozone.reorder("RANDOM()").first,
|
geozone: Geozone.reorder("RANDOM()").first,
|
||||||
terms_of_service: "1")
|
terms_of_service: "1")
|
||||||
|
|
||||||
@@ -13,4 +13,4 @@ section "Creating comment notifications" do
|
|||||||
|
|
||||||
Notification.add(user, comment)
|
Notification.add(user, comment)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
section "Creating polls" do
|
section "Creating polls" do
|
||||||
|
|
||||||
Poll.create(name: I18n.t('seeds.polls.current_poll'),
|
Poll.create(name: I18n.t("seeds.polls.current_poll"),
|
||||||
starts_at: 7.days.ago,
|
starts_at: 7.days.ago,
|
||||||
ends_at: 7.days.from_now,
|
ends_at: 7.days.from_now,
|
||||||
geozone_restricted: false)
|
geozone_restricted: false)
|
||||||
|
|
||||||
Poll.create(name: I18n.t('seeds.polls.current_poll_geozone_restricted'),
|
Poll.create(name: I18n.t("seeds.polls.current_poll_geozone_restricted"),
|
||||||
starts_at: 5.days.ago,
|
starts_at: 5.days.ago,
|
||||||
ends_at: 5.days.from_now,
|
ends_at: 5.days.from_now,
|
||||||
geozone_restricted: true,
|
geozone_restricted: true,
|
||||||
geozones: Geozone.reorder("RANDOM()").limit(3))
|
geozones: Geozone.reorder("RANDOM()").limit(3))
|
||||||
|
|
||||||
Poll.create(name: I18n.t('seeds.polls.recounting_poll'),
|
Poll.create(name: I18n.t("seeds.polls.recounting_poll"),
|
||||||
starts_at: 15.days.ago,
|
starts_at: 15.days.ago,
|
||||||
ends_at: 2.days.ago)
|
ends_at: 2.days.ago)
|
||||||
|
|
||||||
Poll.create(name: I18n.t('seeds.polls.expired_poll_without_stats'),
|
Poll.create(name: I18n.t("seeds.polls.expired_poll_without_stats"),
|
||||||
starts_at: 2.months.ago,
|
starts_at: 2.months.ago,
|
||||||
ends_at: 1.month.ago)
|
ends_at: 1.month.ago)
|
||||||
|
|
||||||
Poll.create(name: I18n.t('seeds.polls.expired_poll_with_stats'),
|
Poll.create(name: I18n.t("seeds.polls.expired_poll_with_stats"),
|
||||||
starts_at: 2.months.ago,
|
starts_at: 2.months.ago,
|
||||||
ends_at: 1.month.ago,
|
ends_at: 1.month.ago,
|
||||||
results_enabled: true,
|
results_enabled: true,
|
||||||
@@ -42,7 +42,7 @@ end
|
|||||||
section "Creating Poll Questions & Answers" do
|
section "Creating Poll Questions & Answers" do
|
||||||
Poll.find_each do |poll|
|
Poll.find_each do |poll|
|
||||||
(1..4).to_a.sample.times do
|
(1..4).to_a.sample.times do
|
||||||
title = Faker::Lorem.sentence(3).truncate(60) + '?'
|
title = Faker::Lorem.sentence(3).truncate(60) + "?"
|
||||||
question = Poll::Question.new(author: User.all.sample,
|
question = Poll::Question.new(author: User.all.sample,
|
||||||
title: title,
|
title: title,
|
||||||
poll: poll)
|
poll: poll)
|
||||||
@@ -118,7 +118,7 @@ section "Creating Poll Voters" do
|
|||||||
document_number: user.document_number,
|
document_number: user.document_number,
|
||||||
user: user,
|
user: user,
|
||||||
poll: poll,
|
poll: poll,
|
||||||
origin: 'booth',
|
origin: "booth",
|
||||||
officer: Poll::Officer.all.sample)
|
officer: Poll::Officer.all.sample)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ section "Creating Poll Voters" do
|
|||||||
document_number: user.document_number,
|
document_number: user.document_number,
|
||||||
user: user,
|
user: user,
|
||||||
poll: poll,
|
poll: poll,
|
||||||
origin: 'web',
|
origin: "web",
|
||||||
token: SecureRandom.hex(32))
|
token: SecureRandom.hex(32))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
IMAGE_FILES = %w{
|
IMAGE_FILES = %w[
|
||||||
firdouss-ross-414668-unsplash_846x475.jpg
|
firdouss-ross-414668-unsplash_846x475.jpg
|
||||||
nathan-dumlao-496190-unsplash_713x475.jpg
|
nathan-dumlao-496190-unsplash_713x475.jpg
|
||||||
steve-harvey-597760-unsplash_713x475.jpg
|
steve-harvey-597760-unsplash_713x475.jpg
|
||||||
tim-mossholder-302931-unsplash_713x475.jpg
|
tim-mossholder-302931-unsplash_713x475.jpg
|
||||||
}.map do |filename|
|
].map do |filename|
|
||||||
File.new(Rails.root.join("db",
|
File.new(Rails.root.join("db",
|
||||||
"dev_seeds",
|
"dev_seeds",
|
||||||
"images",
|
"images",
|
||||||
@@ -34,7 +34,7 @@ section "Creating Proposals" do
|
|||||||
external_url: Faker::Internet.url,
|
external_url: Faker::Internet.url,
|
||||||
description: description,
|
description: description,
|
||||||
created_at: rand((Time.current - 1.week)..Time.current),
|
created_at: rand((Time.current - 1.week)..Time.current),
|
||||||
tag_list: tags.sample(3).join(','),
|
tag_list: tags.sample(3).join(","),
|
||||||
geozone: Geozone.all.sample,
|
geozone: Geozone.all.sample,
|
||||||
skip_map: "1",
|
skip_map: "1",
|
||||||
terms_of_service: "1")
|
terms_of_service: "1")
|
||||||
@@ -54,7 +54,7 @@ section "Creating Archived Proposals" do
|
|||||||
responsible_name: Faker::Name.name,
|
responsible_name: Faker::Name.name,
|
||||||
external_url: Faker::Internet.url,
|
external_url: Faker::Internet.url,
|
||||||
description: description,
|
description: description,
|
||||||
tag_list: tags.sample(3).join(','),
|
tag_list: tags.sample(3).join(","),
|
||||||
geozone: Geozone.all.sample,
|
geozone: Geozone.all.sample,
|
||||||
skip_map: "1",
|
skip_map: "1",
|
||||||
terms_of_service: "1",
|
terms_of_service: "1",
|
||||||
@@ -76,7 +76,7 @@ section "Creating Successful Proposals" do
|
|||||||
external_url: Faker::Internet.url,
|
external_url: Faker::Internet.url,
|
||||||
description: description,
|
description: description,
|
||||||
created_at: rand((Time.current - 1.week)..Time.current),
|
created_at: rand((Time.current - 1.week)..Time.current),
|
||||||
tag_list: tags.sample(3).join(','),
|
tag_list: tags.sample(3).join(","),
|
||||||
geozone: Geozone.all.sample,
|
geozone: Geozone.all.sample,
|
||||||
skip_map: "1",
|
skip_map: "1",
|
||||||
terms_of_service: "1",
|
terms_of_service: "1",
|
||||||
@@ -84,10 +84,10 @@ section "Creating Successful Proposals" do
|
|||||||
add_image_to proposal
|
add_image_to proposal
|
||||||
end
|
end
|
||||||
|
|
||||||
tags = ActsAsTaggableOn::Tag.where(kind: 'category')
|
tags = ActsAsTaggableOn::Tag.where(kind: "category")
|
||||||
30.times do
|
30.times do
|
||||||
author = User.all.sample
|
author = User.all.sample
|
||||||
description = "<p>#{Faker::Lorem.paragraphs.join('</p><p>')}</p>"
|
description = "<p>#{Faker::Lorem.paragraphs.join("</p><p>")}</p>"
|
||||||
proposal = Proposal.create!(author: author,
|
proposal = Proposal.create!(author: author,
|
||||||
title: Faker::Lorem.sentence(4).truncate(60),
|
title: Faker::Lorem.sentence(4).truncate(60),
|
||||||
question: Faker::Lorem.sentence(6) + "?",
|
question: Faker::Lorem.sentence(6) + "?",
|
||||||
@@ -96,7 +96,7 @@ section "Creating Successful Proposals" do
|
|||||||
external_url: Faker::Internet.url,
|
external_url: Faker::Internet.url,
|
||||||
description: description,
|
description: description,
|
||||||
created_at: rand((Time.current - 1.week)..Time.current),
|
created_at: rand((Time.current - 1.week)..Time.current),
|
||||||
tag_list: tags.sample(3).join(','),
|
tag_list: tags.sample(3).join(","),
|
||||||
geozone: Geozone.all.sample,
|
geozone: Geozone.all.sample,
|
||||||
skip_map: "1",
|
skip_map: "1",
|
||||||
terms_of_service: "1")
|
terms_of_service: "1")
|
||||||
|
|||||||
@@ -1,77 +1,76 @@
|
|||||||
section "Creating Settings" do
|
section "Creating Settings" do
|
||||||
Setting.create(key: 'official_level_1_name',
|
Setting.create(key: "official_level_1_name",
|
||||||
value: I18n.t('seeds.settings.official_level_1_name'))
|
value: I18n.t("seeds.settings.official_level_1_name"))
|
||||||
Setting.create(key: 'official_level_2_name',
|
Setting.create(key: "official_level_2_name",
|
||||||
value: I18n.t('seeds.settings.official_level_2_name'))
|
value: I18n.t("seeds.settings.official_level_2_name"))
|
||||||
Setting.create(key: 'official_level_3_name',
|
Setting.create(key: "official_level_3_name",
|
||||||
value: I18n.t('seeds.settings.official_level_3_name'))
|
value: I18n.t("seeds.settings.official_level_3_name"))
|
||||||
Setting.create(key: 'official_level_4_name',
|
Setting.create(key: "official_level_4_name",
|
||||||
value: I18n.t('seeds.settings.official_level_4_name'))
|
value: I18n.t("seeds.settings.official_level_4_name"))
|
||||||
Setting.create(key: 'official_level_5_name',
|
Setting.create(key: "official_level_5_name",
|
||||||
value: I18n.t('seeds.settings.official_level_5_name'))
|
value: I18n.t("seeds.settings.official_level_5_name"))
|
||||||
Setting.create(key: 'max_ratio_anon_votes_on_debates', value: '50')
|
Setting.create(key: "max_ratio_anon_votes_on_debates", value: "50")
|
||||||
Setting.create(key: 'max_votes_for_debate_edit', value: '1000')
|
Setting.create(key: "max_votes_for_debate_edit", value: "1000")
|
||||||
Setting.create(key: 'max_votes_for_proposal_edit', value: '1000')
|
Setting.create(key: "max_votes_for_proposal_edit", value: "1000")
|
||||||
Setting.create(key: 'proposal_code_prefix', value: 'MAD')
|
Setting.create(key: "proposal_code_prefix", value: "MAD")
|
||||||
Setting.create(key: 'votes_for_proposal_success', value: '100')
|
Setting.create(key: "votes_for_proposal_success", value: "100")
|
||||||
Setting.create(key: 'months_to_archive_proposals', value: '12')
|
Setting.create(key: "months_to_archive_proposals", value: "12")
|
||||||
Setting.create(key: 'comments_body_max_length', value: '1000')
|
Setting.create(key: "comments_body_max_length", value: "1000")
|
||||||
|
|
||||||
Setting.create(key: 'twitter_handle', value: '@consul_dev')
|
Setting.create(key: "twitter_handle", value: "@consul_dev")
|
||||||
Setting.create(key: 'twitter_hashtag', value: '#consul_dev')
|
Setting.create(key: "twitter_hashtag", value: "#consul_dev")
|
||||||
Setting.create(key: 'facebook_handle', value: 'CONSUL')
|
Setting.create(key: "facebook_handle", value: "CONSUL")
|
||||||
Setting.create(key: 'youtube_handle', value: 'CONSUL')
|
Setting.create(key: "youtube_handle", value: "CONSUL")
|
||||||
Setting.create(key: 'telegram_handle', value: 'CONSUL')
|
Setting.create(key: "telegram_handle", value: "CONSUL")
|
||||||
Setting.create(key: 'instagram_handle', value: 'CONSUL')
|
Setting.create(key: "instagram_handle", value: "CONSUL")
|
||||||
Setting.create(key: 'blog_url', value: '/blog')
|
Setting.create(key: "url", value: "http://localhost:3000")
|
||||||
Setting.create(key: 'url', value: 'http://localhost:3000')
|
Setting.create(key: "org_name", value: "CONSUL")
|
||||||
Setting.create(key: 'org_name', value: 'CONSUL')
|
|
||||||
Setting.create(key: 'place_name', value: 'City')
|
|
||||||
|
|
||||||
Setting.create(key: 'feature.debates', value: "true")
|
Setting.create(key: "feature.debates", value: "true")
|
||||||
Setting.create(key: 'feature.proposals', value: "true")
|
Setting.create(key: "feature.proposals", value: "true")
|
||||||
Setting.create(key: 'feature.featured_proposals', value: "true")
|
Setting.create(key: "feature.featured_proposals", value: "true")
|
||||||
Setting.create(key: 'feature.polls', value: "true")
|
Setting.create(key: "feature.polls", value: "true")
|
||||||
Setting.create(key: 'feature.spending_proposals', value: nil)
|
Setting.create(key: "feature.spending_proposals", value: nil)
|
||||||
Setting.create(key: 'feature.spending_proposal_features.voting_allowed', value: nil)
|
Setting.create(key: "feature.spending_proposal_features.voting_allowed", value: nil)
|
||||||
Setting.create(key: 'feature.budgets', value: "true")
|
Setting.create(key: "feature.budgets", value: "true")
|
||||||
Setting.create(key: 'feature.twitter_login', value: "true")
|
Setting.create(key: "feature.twitter_login", value: "true")
|
||||||
Setting.create(key: 'feature.facebook_login', value: "true")
|
Setting.create(key: "feature.facebook_login", value: "true")
|
||||||
Setting.create(key: 'feature.google_login', value: "true")
|
Setting.create(key: "feature.google_login", value: "true")
|
||||||
Setting.create(key: 'feature.signature_sheets', value: "true")
|
Setting.create(key: "feature.signature_sheets", value: "true")
|
||||||
Setting.create(key: 'feature.legislation', value: "true")
|
Setting.create(key: "feature.legislation", value: "true")
|
||||||
Setting.create(key: 'feature.user.recommendations', value: "true")
|
Setting.create(key: "feature.user.recommendations", value: "true")
|
||||||
Setting.create(key: 'feature.user.recommendations_on_debates', value: "true")
|
Setting.create(key: "feature.user.recommendations_on_debates", value: "true")
|
||||||
Setting.create(key: 'feature.user.recommendations_on_proposals', value: "true")
|
Setting.create(key: "feature.user.recommendations_on_proposals", value: "true")
|
||||||
Setting.create(key: 'feature.community', value: "true")
|
Setting.create(key: "feature.community", value: "true")
|
||||||
Setting.create(key: 'feature.map', value: "true")
|
Setting.create(key: "feature.map", value: "true")
|
||||||
Setting.create(key: 'feature.allow_images', value: "true")
|
Setting.create(key: "feature.allow_images", value: "true")
|
||||||
Setting.create(key: 'feature.allow_attached_documents', value: "true")
|
Setting.create(key: "feature.allow_attached_documents", value: "true")
|
||||||
Setting.create(key: 'feature.public_stats', value: "true")
|
Setting.create(key: "feature.public_stats", value: "true")
|
||||||
Setting.create(key: 'feature.user.skip_verification', value: "true")
|
Setting.create(key: "feature.user.skip_verification", value: "true")
|
||||||
Setting.create(key: 'feature.help_page', value: "true")
|
Setting.create(key: "feature.help_page", value: "true")
|
||||||
|
|
||||||
Setting.create(key: 'per_page_code_head', value: "")
|
Setting.create(key: "per_page_code_head", value: "")
|
||||||
Setting.create(key: 'per_page_code_body', value: "")
|
Setting.create(key: "per_page_code_body", value: "")
|
||||||
Setting.create(key: 'comments_body_max_length', value: '1000')
|
Setting.create(key: "comments_body_max_length", value: "1000")
|
||||||
Setting.create(key: 'mailer_from_name', value: 'CONSUL')
|
Setting.create(key: "mailer_from_name", value: "CONSUL")
|
||||||
Setting.create(key: 'mailer_from_address', value: 'noreply@consul.dev')
|
Setting.create(key: "mailer_from_address", value: "noreply@consul.dev")
|
||||||
Setting.create(key: 'meta_title', value: 'CONSUL')
|
Setting.create(key: "meta_title", value: "CONSUL")
|
||||||
Setting.create(key: 'meta_description', value: 'Citizen participation tool for an open, '\
|
Setting.create(key: "meta_description", value: "Citizen participation tool for an open, "\
|
||||||
'transparent and democratic government')
|
"transparent and democratic government")
|
||||||
Setting.create(key: 'meta_keywords', value: 'citizen participation, open government')
|
Setting.create(key: "meta_keywords", value: "citizen participation, open government")
|
||||||
Setting.create(key: 'verification_offices_url', value: 'http://oficinas-atencion-ciudadano.url/')
|
Setting.create(key: "verification_offices_url", value: "http://oficinas-atencion-ciudadano.url/")
|
||||||
Setting.create(key: 'min_age_to_participate', value: '16')
|
Setting.create(key: "min_age_to_participate", value: "16")
|
||||||
Setting.create(key: 'proposal_improvement_path', value: nil)
|
Setting.create(key: "map_latitude", value: 40.41)
|
||||||
Setting.create(key: 'map_latitude', value: 40.41)
|
Setting.create(key: "map_longitude", value: -3.7)
|
||||||
Setting.create(key: 'map_longitude', value: -3.7)
|
Setting.create(key: "map_zoom", value: 10)
|
||||||
Setting.create(key: 'map_zoom', value: 10)
|
Setting.create(key: "featured_proposals_number", value: 3)
|
||||||
Setting.create(key: 'featured_proposals_number', value: 3)
|
Setting.create(key: "proposal_notification_minimum_interval_in_days", value: 0)
|
||||||
|
Setting.create(key: "direct_message_max_per_day", value: 3)
|
||||||
|
|
||||||
Setting.create(key: 'related_content_score_threshold', value: -0.3)
|
Setting.create(key: "related_content_score_threshold", value: -0.3)
|
||||||
Setting.create(key: 'hot_score_period_in_days', value: 31)
|
Setting.create(key: "hot_score_period_in_days", value: 31)
|
||||||
|
|
||||||
Setting['feature.homepage.widgets.feeds.proposals'] = true
|
Setting["feature.homepage.widgets.feeds.proposals"] = true
|
||||||
Setting['feature.homepage.widgets.feeds.debates'] = true
|
Setting["feature.homepage.widgets.feeds.debates"] = true
|
||||||
Setting['feature.homepage.widgets.feeds.processes'] = true
|
Setting["feature.homepage.widgets.feeds.processes"] = true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
section "Creating Tags Categories" do
|
section "Creating Tags Categories" do
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.associations'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.associations"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.culture'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.culture"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.sports'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.sports"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.social_rights'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.social_rights"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.economy'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.economy"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.employment'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.employment"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.equity'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.equity"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.sustainability'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.sustainability"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.participation'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.participation"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.mobility'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.mobility"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.media'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.media"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.health'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.health"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.transparency'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.transparency"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.security_emergencies'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.security_emergencies"))
|
||||||
ActsAsTaggableOn::Tag.category.create!(name: I18n.t('seeds.categories.environment'))
|
ActsAsTaggableOn::Tag.category.create!(name: I18n.t("seeds.categories.environment"))
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
section "Creating Users" do
|
section "Creating Users" do
|
||||||
def create_user(email, username = Faker::Name.name)
|
def create_user(email, username = Faker::Name.name)
|
||||||
password = '12345678'
|
password = "12345678"
|
||||||
User.create!(
|
User.create!(
|
||||||
username: username,
|
username: username,
|
||||||
email: email,
|
email: email,
|
||||||
@@ -8,7 +8,7 @@ section "Creating Users" do
|
|||||||
password_confirmation: password,
|
password_confirmation: password,
|
||||||
confirmed_at: Time.current,
|
confirmed_at: Time.current,
|
||||||
terms_of_service: "1",
|
terms_of_service: "1",
|
||||||
gender: ['Male', 'Female'].sample,
|
gender: ["Male", "Female"].sample,
|
||||||
date_of_birth: rand((Time.current - 80.years)..(Time.current - 16.years)),
|
date_of_birth: rand((Time.current - 80.years)..(Time.current - 16.years)),
|
||||||
public_activity: (rand(1..100) > 30)
|
public_activity: (rand(1..100) > 30)
|
||||||
)
|
)
|
||||||
@@ -17,61 +17,61 @@ section "Creating Users" do
|
|||||||
def unique_document_number
|
def unique_document_number
|
||||||
@document_number ||= 12345678
|
@document_number ||= 12345678
|
||||||
@document_number += 1
|
@document_number += 1
|
||||||
"#{@document_number}#{[*'A'..'Z'].sample}"
|
"#{@document_number}#{[*"A".."Z"].sample}"
|
||||||
end
|
end
|
||||||
|
|
||||||
admin = create_user('admin@consul.dev', 'admin')
|
admin = create_user("admin@consul.dev", "admin")
|
||||||
admin.create_administrator
|
admin.create_administrator
|
||||||
admin.update(residence_verified_at: Time.current,
|
admin.update(residence_verified_at: Time.current,
|
||||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||||
verified_at: Time.current, document_number: unique_document_number)
|
verified_at: Time.current, document_number: unique_document_number)
|
||||||
|
|
||||||
moderator = create_user('mod@consul.dev', 'moderator')
|
moderator = create_user("mod@consul.dev", "moderator")
|
||||||
moderator.create_moderator
|
moderator.create_moderator
|
||||||
moderator.update(residence_verified_at: Time.current,
|
moderator.update(residence_verified_at: Time.current,
|
||||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||||
verified_at: Time.current, document_number: unique_document_number)
|
verified_at: Time.current, document_number: unique_document_number)
|
||||||
|
|
||||||
manager = create_user('manager@consul.dev', 'manager')
|
manager = create_user("manager@consul.dev", "manager")
|
||||||
manager.create_manager
|
manager.create_manager
|
||||||
manager.update(residence_verified_at: Time.current,
|
manager.update(residence_verified_at: Time.current,
|
||||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||||
verified_at: Time.current, document_number: unique_document_number)
|
verified_at: Time.current, document_number: unique_document_number)
|
||||||
|
|
||||||
valuator = create_user('valuator@consul.dev', 'valuator')
|
valuator = create_user("valuator@consul.dev", "valuator")
|
||||||
valuator.create_valuator
|
valuator.create_valuator
|
||||||
valuator.update(residence_verified_at: Time.current,
|
valuator.update(residence_verified_at: Time.current,
|
||||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||||
verified_at: Time.current, document_number: unique_document_number)
|
verified_at: Time.current, document_number: unique_document_number)
|
||||||
|
|
||||||
poll_officer = create_user('poll_officer@consul.dev', 'Paul O. Fisher')
|
poll_officer = create_user("poll_officer@consul.dev", "Paul O. Fisher")
|
||||||
poll_officer.create_poll_officer
|
poll_officer.create_poll_officer
|
||||||
poll_officer.update(residence_verified_at: Time.current,
|
poll_officer.update(residence_verified_at: Time.current,
|
||||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||||
verified_at: Time.current, document_number: unique_document_number)
|
verified_at: Time.current, document_number: unique_document_number)
|
||||||
|
|
||||||
poll_officer2 = create_user('poll_officer2@consul.dev', 'Pauline M. Espinosa')
|
poll_officer2 = create_user("poll_officer2@consul.dev", "Pauline M. Espinosa")
|
||||||
poll_officer2.create_poll_officer
|
poll_officer2.create_poll_officer
|
||||||
poll_officer2.update(residence_verified_at: Time.current,
|
poll_officer2.update(residence_verified_at: Time.current,
|
||||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||||
verified_at: Time.current, document_number: unique_document_number)
|
verified_at: Time.current, document_number: unique_document_number)
|
||||||
|
|
||||||
create_user('unverified@consul.dev', 'unverified')
|
create_user("unverified@consul.dev", "unverified")
|
||||||
|
|
||||||
level_2 = create_user('leveltwo@consul.dev', 'level 2')
|
level_2 = create_user("leveltwo@consul.dev", "level 2")
|
||||||
level_2.update(residence_verified_at: Time.current,
|
level_2.update(residence_verified_at: Time.current,
|
||||||
confirmed_phone: Faker::PhoneNumber.phone_number,
|
confirmed_phone: Faker::PhoneNumber.phone_number,
|
||||||
document_number: unique_document_number, document_type: "1")
|
document_number: unique_document_number, document_type: "1")
|
||||||
|
|
||||||
verified = create_user('verified@consul.dev', 'verified')
|
verified = create_user("verified@consul.dev", "verified")
|
||||||
verified.update(residence_verified_at: Time.current,
|
verified.update(residence_verified_at: Time.current,
|
||||||
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
confirmed_phone: Faker::PhoneNumber.phone_number, document_type: "1",
|
||||||
verified_at: Time.current, document_number: unique_document_number)
|
verified_at: Time.current, document_number: unique_document_number)
|
||||||
|
|
||||||
[
|
[
|
||||||
I18n.t('seeds.organizations.neighborhood_association'),
|
I18n.t("seeds.organizations.neighborhood_association"),
|
||||||
I18n.t('seeds.organizations.human_rights'),
|
I18n.t("seeds.organizations.human_rights"),
|
||||||
'Greenpeace'
|
"Greenpeace"
|
||||||
].each do |organization_name|
|
].each do |organization_name|
|
||||||
org_user = create_user("#{organization_name.parameterize}@consul.dev", organization_name)
|
org_user = create_user("#{organization_name.parameterize}@consul.dev", organization_name)
|
||||||
org = org_user.create_organization(name: organization_name, responsible_name: Faker::Name.name)
|
org = org_user.create_organization(name: organization_name, responsible_name: Faker::Name.name)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
section "Voting Debates, Proposals & Comments" do
|
section "Voting Debates, Proposals & Comments" do
|
||||||
not_org_users = User.where(['users.id NOT IN(?)', User.organizations.pluck(:id)])
|
not_org_users = User.where(["users.id NOT IN(?)", User.organizations.pluck(:id)])
|
||||||
100.times do
|
100.times do
|
||||||
voter = not_org_users.level_two_or_three_verified.all.sample
|
voter = not_org_users.level_two_or_three_verified.all.sample
|
||||||
vote = [true, false].sample
|
vote = [true, false].sample
|
||||||
|
|||||||
@@ -9,74 +9,88 @@ section "Creating header and cards for the homepage" do
|
|||||||
end
|
end
|
||||||
|
|
||||||
Widget::Card.create!(
|
Widget::Card.create!(
|
||||||
title_en: 'CONSUL',
|
title_en: "CONSUL",
|
||||||
title_es: 'CONSUL',
|
title_es: "CONSUL",
|
||||||
|
|
||||||
description_en: 'Free software for citizen participation.',
|
description_en: "Free software for citizen participation.",
|
||||||
description_es: 'Software libre para la participación ciudadana.',
|
description_es: "Software libre para la participación ciudadana.",
|
||||||
|
|
||||||
link_text_en: 'More information',
|
link_text_en: "More information",
|
||||||
link_text_es: 'Más información',
|
link_text_es: "Más información",
|
||||||
|
|
||||||
label_en: 'Welcome to',
|
label_en: "Welcome to",
|
||||||
label_es: 'Bienvenido a',
|
label_es: "Bienvenido a",
|
||||||
|
|
||||||
link_url: 'http://consulproject.org/',
|
link_url: "http://consulproject.org/",
|
||||||
header: true,
|
header: true,
|
||||||
image_attributes: create_image_attachment('header')
|
image_attributes: create_image_attachment("header")
|
||||||
)
|
)
|
||||||
|
|
||||||
Widget::Card.create!(
|
Widget::Card.create!(
|
||||||
title_en: 'How do debates work?',
|
title_en: "How do debates work?",
|
||||||
title_es: '¿Cómo funcionan los debates?',
|
title_es: "¿Cómo funcionan los debates?",
|
||||||
|
|
||||||
description_en: 'Anyone can open threads on any subject, creating separate spaces where people can discuss the proposed topic. Debates are valued by everybody, to highlight the most important issues.',
|
description_en: "Anyone can open threads on any subject, creating separate spaces "\
|
||||||
description_es: 'Cualquiera puede iniciar un debate sobre cualquier tema, creando un espacio separado donde compartir puntos de vista con otras personas. Los debates son valorados por todos para destacar los temas más importantes.',
|
"where people can discuss the proposed topic. Debates are valued by "\
|
||||||
|
"everybody, to highlight the most important issues.",
|
||||||
|
description_es: "Cualquiera puede iniciar un debate sobre cualquier tema, creando un espacio "\
|
||||||
|
"separado donde compartir puntos de vista con otras personas. Los debates son "\
|
||||||
|
"valorados por todos para destacar los temas más importantes.",
|
||||||
|
|
||||||
link_text_en: 'More about debates',
|
link_text_en: "More about debates",
|
||||||
link_text_es: 'Más sobre debates',
|
link_text_es: "Más sobre debates",
|
||||||
|
|
||||||
label_en: 'Debates',
|
label_en: "Debates",
|
||||||
label_es: 'Debates',
|
label_es: "Debates",
|
||||||
|
|
||||||
link_url: 'https://youtu.be/zU_0UN4VajY',
|
link_url: "https://youtu.be/zU_0UN4VajY",
|
||||||
header: false,
|
header: false,
|
||||||
image_attributes: create_image_attachment('debate')
|
image_attributes: create_image_attachment("debate")
|
||||||
)
|
)
|
||||||
|
|
||||||
Widget::Card.create!(
|
Widget::Card.create!(
|
||||||
title_en: 'How do citizen proposals work?',
|
title_en: "How do citizen proposals work?",
|
||||||
title_es: '¿Cómo funcionan las propuestas ciudadanas?',
|
title_es: "¿Cómo funcionan las propuestas ciudadanas?",
|
||||||
|
|
||||||
description_en: "A space for everyone to create a citizens' proposal and seek supports. Proposals which reach to enough supports will be voted and so, together we can decide the issues that matter to us.",
|
description_en: "A space for everyone to create a citizen's proposal and seek supports. "\
|
||||||
description_es: 'Un espacio para que el ciudadano cree una propuesta y busque apoyo. Las propuestas que obtengan el apoyo necesario serán votadas. Así juntos podemos decidir sobre los temas que nos importan.',
|
"Proposals which reach to enough supports will be voted and so, together we "\
|
||||||
|
"can decide the issues that matter to us.",
|
||||||
|
description_es: "Un espacio para que el ciudadano cree una propuesta y busque apoyo. "\
|
||||||
|
"Las propuestas que obtengan el apoyo necesario serán votadas. Así juntos "\
|
||||||
|
"podemos decidir sobre los temas que nos importan.",
|
||||||
|
|
||||||
link_text_en: 'More about proposals',
|
link_text_en: "More about proposals",
|
||||||
link_text_es: 'Más sobre propuestas',
|
link_text_es: "Más sobre propuestas",
|
||||||
|
|
||||||
label_en: 'Citizen proposals',
|
label_en: "Citizen proposals",
|
||||||
label_es: 'Propuestas ciudadanas',
|
label_es: "Propuestas ciudadanas",
|
||||||
|
|
||||||
link_url: 'https://youtu.be/ZHqBpT4uCoM',
|
link_url: "https://youtu.be/ZHqBpT4uCoM",
|
||||||
header: false,
|
header: false,
|
||||||
image_attributes: create_image_attachment('proposal')
|
image_attributes: create_image_attachment("proposal")
|
||||||
)
|
)
|
||||||
|
|
||||||
Widget::Card.create!(
|
Widget::Card.create!(
|
||||||
title_en: 'How do participatory budgets work?',
|
title_en: "How do participatory budgets work?",
|
||||||
title_es: '¿Cómo funcionan los propuestos participativos?',
|
title_es: "¿Cómo funcionan los propuestos participativos?",
|
||||||
|
|
||||||
description_en: " Participatory budgets allow citizens to propose and decide directly how to spend part of the budget, with monitoring and rigorous evaluation of proposals by the institution. Maximum effectiveness and control with satisfaction for everyone.",
|
description_en: "Participatory budgets allow citizens to propose and decide directly "\
|
||||||
description_es: "Los presupuestos participativos permiten que los ciudadanos propongan y decidan directamente cómo gastar parte del presupuesto, con la supervisión y valoración de la institución. Máxima eficacia y control para la satisfacción de todos",
|
"how to spend part of the budget, with monitoring and rigorous evaluation "\
|
||||||
|
"of proposals by the institution. Maximum effectiveness and control with "\
|
||||||
|
"satisfaction for everyone.",
|
||||||
|
description_es: "Los presupuestos participativos permiten que los ciudadanos propongan y "\
|
||||||
|
"decidan directamente cómo gastar parte del presupuesto, con la supervisión "\
|
||||||
|
"y valoración de la institución. Máxima eficacia y control para la "\
|
||||||
|
"satisfacción de todos",
|
||||||
|
|
||||||
link_text_en: 'More about Participatory budgets',
|
link_text_en: "More about Participatory budgets",
|
||||||
link_text_es: 'Más sobre presupuestos participativos',
|
link_text_es: "Más sobre presupuestos participativos",
|
||||||
|
|
||||||
label_en: 'Participatory budgets',
|
label_en: "Participatory budgets",
|
||||||
label_es: 'Presupuestos participativos',
|
label_es: "Presupuestos participativos",
|
||||||
|
|
||||||
link_url: 'https://youtu.be/igQ8KGZdk9c',
|
link_url: "https://youtu.be/igQ8KGZdk9c",
|
||||||
header: false,
|
header: false,
|
||||||
image_attributes: create_image_attachment('budget')
|
image_attributes: create_image_attachment("budget")
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|||||||
19
db/seeds.rb
19
db/seeds.rb
@@ -51,9 +51,6 @@ Setting["facebook_handle"] = nil
|
|||||||
Setting["youtube_handle"] = nil
|
Setting["youtube_handle"] = nil
|
||||||
Setting["telegram_handle"] = nil
|
Setting["telegram_handle"] = nil
|
||||||
Setting["instagram_handle"] = nil
|
Setting["instagram_handle"] = nil
|
||||||
Setting["blog_url"] = nil
|
|
||||||
Setting["transparency_url"] = nil
|
|
||||||
Setting["opendata_url"] = "/opendata"
|
|
||||||
|
|
||||||
# Public-facing URL of the app.
|
# Public-facing URL of the app.
|
||||||
Setting["url"] = "http://example.com"
|
Setting["url"] = "http://example.com"
|
||||||
@@ -61,9 +58,6 @@ Setting["url"] = "http://example.com"
|
|||||||
# CONSUL installation's organization name
|
# CONSUL installation's organization name
|
||||||
Setting["org_name"] = "CONSUL"
|
Setting["org_name"] = "CONSUL"
|
||||||
|
|
||||||
# CONSUL installation place name (City, Country...)
|
|
||||||
Setting["place_name"] = "CONSUL-land"
|
|
||||||
|
|
||||||
# Meta tags for SEO
|
# Meta tags for SEO
|
||||||
Setting["meta_title"] = nil
|
Setting["meta_title"] = nil
|
||||||
Setting["meta_description"] = nil
|
Setting["meta_description"] = nil
|
||||||
@@ -94,16 +88,6 @@ Setting['feature.help_page'] = true
|
|||||||
# Spending proposals feature flags
|
# Spending proposals feature flags
|
||||||
Setting['feature.spending_proposal_features.voting_allowed'] = nil
|
Setting['feature.spending_proposal_features.voting_allowed'] = nil
|
||||||
|
|
||||||
# Banner styles
|
|
||||||
Setting['banner-style.banner-style-one'] = "Banner style 1"
|
|
||||||
Setting['banner-style.banner-style-two'] = "Banner style 2"
|
|
||||||
Setting['banner-style.banner-style-three'] = "Banner style 3"
|
|
||||||
|
|
||||||
# Banner images
|
|
||||||
Setting['banner-img.banner-img-one'] = "Banner image 1"
|
|
||||||
Setting['banner-img.banner-img-two'] = "Banner image 2"
|
|
||||||
Setting['banner-img.banner-img-three'] = "Banner image 3"
|
|
||||||
|
|
||||||
# Proposal notifications
|
# Proposal notifications
|
||||||
Setting['proposal_notification_minimum_interval_in_days'] = 3
|
Setting['proposal_notification_minimum_interval_in_days'] = 3
|
||||||
Setting['direct_message_max_per_day'] = 3
|
Setting['direct_message_max_per_day'] = 3
|
||||||
@@ -119,9 +103,6 @@ Setting['min_age_to_participate'] = 16
|
|||||||
# Featured proposals
|
# Featured proposals
|
||||||
Setting['featured_proposals_number'] = 3
|
Setting['featured_proposals_number'] = 3
|
||||||
|
|
||||||
# Proposal improvement url path ('/help/proposal-improvement')
|
|
||||||
Setting['proposal_improvement_path'] = nil
|
|
||||||
|
|
||||||
# City map feature default configuration (Greenwich)
|
# City map feature default configuration (Greenwich)
|
||||||
Setting['map_latitude'] = 51.48
|
Setting['map_latitude'] = 51.48
|
||||||
Setting['map_longitude'] = 0.0
|
Setting['map_longitude'] = 0.0
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
namespace :banners do
|
|
||||||
|
|
||||||
desc "Migrate styles to background_color and font_color"
|
|
||||||
task migrate_style: :environment do
|
|
||||||
|
|
||||||
Banner.all.each do |banner|
|
|
||||||
banner.font_color = '#FFFFFF'
|
|
||||||
case banner.style
|
|
||||||
when "banner-style banner-style-one"
|
|
||||||
banner.background_color = '#004a83'
|
|
||||||
when "banner-style banner-style-two"
|
|
||||||
banner.background_color = '#7e328a'
|
|
||||||
when "banner-style banner-style-three"
|
|
||||||
banner.background_color = '#33dadf'
|
|
||||||
end
|
|
||||||
banner.save
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -248,34 +248,6 @@ feature "Proposals" do
|
|||||||
expect(page).to have_content I18n.l(Proposal.last.created_at.to_date)
|
expect(page).to have_content I18n.l(Proposal.last.created_at.to_date)
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "Create with proposal improvement info link" do
|
|
||||||
Setting["proposal_improvement_path"] = "/more-information/proposal-improvement"
|
|
||||||
author = create(:user)
|
|
||||||
login_as(author)
|
|
||||||
|
|
||||||
visit new_proposal_path
|
|
||||||
fill_in "proposal_title", with: "Help refugees"
|
|
||||||
fill_in "proposal_question", with: "¿Would you like to give assistance to war refugees?"
|
|
||||||
fill_in "proposal_summary", with: "In summary, what we want is..."
|
|
||||||
fill_in "proposal_description", with: "This is very important because..."
|
|
||||||
fill_in "proposal_external_url", with: "http://rescue.org/refugees"
|
|
||||||
fill_in "proposal_video_url", with: "https://www.youtube.com/watch?v=yPQfcG-eimk"
|
|
||||||
fill_in "proposal_responsible_name", with: "Isabel Garcia"
|
|
||||||
fill_in "proposal_tag_list", with: "Refugees, Solidarity"
|
|
||||||
check "proposal_terms_of_service"
|
|
||||||
|
|
||||||
click_button "Create proposal"
|
|
||||||
|
|
||||||
expect(page).to have_content "Proposal created successfully."
|
|
||||||
expect(page).to have_content "Improve your campaign and get more supports"
|
|
||||||
|
|
||||||
click_link "Not now, go to my proposal"
|
|
||||||
|
|
||||||
expect(page).to have_content "Help refugees"
|
|
||||||
|
|
||||||
Setting["proposal_improvement_path"] = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
scenario "Create with invisible_captcha honeypot field" do
|
scenario "Create with invisible_captcha honeypot field" do
|
||||||
author = create(:user)
|
author = create(:user)
|
||||||
login_as(author)
|
login_as(author)
|
||||||
|
|||||||
@@ -54,28 +54,4 @@ describe Setting do
|
|||||||
expect(setting.enabled?).to eq false
|
expect(setting.enabled?).to eq false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#banner_style?" do
|
|
||||||
it "is true if key starts with 'banner-style.'" do
|
|
||||||
setting = described_class.create(key: "banner-style.whatever")
|
|
||||||
expect(setting.banner_style?).to eq true
|
|
||||||
end
|
|
||||||
|
|
||||||
it "is false if key does not start with 'banner-style.'" do
|
|
||||||
setting = described_class.create(key: "whatever")
|
|
||||||
expect(setting.banner_style?).to eq false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#banner_img?" do
|
|
||||||
it "is true if key starts with 'banner-img.'" do
|
|
||||||
setting = described_class.create(key: "banner-img.whatever")
|
|
||||||
expect(setting.banner_img?).to eq true
|
|
||||||
end
|
|
||||||
|
|
||||||
it "is false if key does not start with 'banner-img.'" do
|
|
||||||
setting = described_class.create(key: "whatever")
|
|
||||||
expect(setting.banner_img?).to eq false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user