From 736099fa51805a26707fc3ae37f1c55ed473c295 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Tue, 27 Dec 2016 13:37:24 +0100 Subject: [PATCH 01/22] adds id to advanced search href link and form --- app/views/shared/_advanced_search.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/shared/_advanced_search.html.erb b/app/views/shared/_advanced_search.html.erb index c27c8f8d6..beb0ada63 100644 --- a/app/views/shared/_advanced_search.html.erb +++ b/app/views/shared/_advanced_search.html.erb @@ -1,9 +1,9 @@
- <%= link_to t("shared.advanced_search.title"), "#", id: 'js-advanced-search-title', class: "advanced-search small" %> + <%= link_to t("shared.advanced_search.title"), "#advanced_search_form", id: 'js-advanced-search-title', class: "advanced-search small" %>
- <%= form_tag search_path, method: :get do %> + <%= form_tag search_path, id: "advanced_search_form", method: :get do %> From ae7458024d14750bb235efec869cf0f10a8f2c73 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Tue, 27 Dec 2016 13:57:27 +0100 Subject: [PATCH 03/22] closes missing aside tag --- app/views/debates/show.html.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/debates/show.html.erb b/app/views/debates/show.html.erb index e2e2c84c9..363a3bab3 100644 --- a/app/views/debates/show.html.erb +++ b/app/views/debates/show.html.erb @@ -58,6 +58,7 @@ <% end %>
+ <% end %> From f0258fb3ee7e8e98cc9eda71df6808e6ffc6fd13 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Tue, 27 Dec 2016 14:26:20 +0100 Subject: [PATCH 04/22] improves html structure for comments --- app/assets/stylesheets/layout.scss | 20 ++++++---- app/views/comments/_comment.html.erb | 55 ++++++++++++++-------------- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index e5e6562d3..e18accc53 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -1601,7 +1601,10 @@ table { } .comment-body { - margin-left: rem-calc(42); + + img { + margin-right: $line-height/2; + } .reply { background: white; @@ -1609,15 +1612,19 @@ table { border-left: 0; border-right: 0; font-size: $small-font-size; - margin: rem-calc(6) 0; - padding: rem-calc(6); + margin: $line-height/4 0; + padding: $line-height/4; position: relative; + a.relative, [class^="icon-arrow"] { + padding-left: $line-height/2; + } + [class^="icon-arrow"] { - font-size: rem-calc(18); + font-size: $base-font-size; left: -20px; position: absolute; - top: 0; + top: -1px; } .divider { @@ -1669,8 +1676,7 @@ table { .comment-info { color: $text-medium; font-size: $small-font-size; - margin-top: $line-height/4; - vertical-align: middle; + line-height: rem-calc(32); // Same as avatar height span.user-name { color: $text; diff --git a/app/views/comments/_comment.html.erb b/app/views/comments/_comment.html.erb index 549b62862..f215068ca 100644 --- a/app/views/comments/_comment.html.erb +++ b/app/views/comments/_comment.html.erb @@ -1,29 +1,28 @@ <% cache [locale_and_user_status(comment), comment, commentable_cache_key(comment.commentable), comment.author, (@comment_flags[comment.id] if @comment_flags)] do %>
    - - <% if comment.hidden? || comment.user.hidden? %> - <% if comment.children.size > 0 %> -
    -

    <%= t("comments.comment.deleted") %>

    -
    - <% end %> - <% else %> - <% if comment.as_administrator? %> - <%= image_tag("avatar_admin.png", size: 32, class: "admin-avatar float-left") %> - <% elsif comment.as_moderator? %> - <%= image_tag("avatar_moderator.png", size: 32, class: "moderator-avatar float-left") %> - <% else %> - <% if comment.user.hidden? || comment.user.erased? %> - - <% elsif comment.user.organization? %> - <%= image_tag("avatar_collective.png", size: 32, class: "avatar float-left") %> - <% else %> - <%= avatar_image(comment.user, seed: comment.user_id, size: 32, class: "float-left") %> +
  • + <% if comment.hidden? || comment.user.hidden? %> + <% if comment.children.size > 0 %> +
    +

    <%= t("comments.comment.deleted") %>

    +
    + <% end %> + <% else %> + <% if comment.as_administrator? %> + <%= image_tag("avatar_admin.png", size: 32, class: "admin-avatar float-left") %> + <% elsif comment.as_moderator? %> + <%= image_tag("avatar_moderator.png", size: 32, class: "moderator-avatar float-left") %> + <% else %> + <% if comment.user.hidden? || comment.user.erased? %> + + <% elsif comment.user.organization? %> + <%= image_tag("avatar_collective.png", size: 32, class: "avatar float-left") %> + <% else %> + <%= avatar_image(comment.user, seed: comment.user_id, size: 32, class: "float-left") %> + <% end %> <% end %> - <% end %> -
  • <% if comment.as_administrator? %> @@ -73,7 +72,7 @@ <% if comment.children.size > 0 %> - <%= link_to "", class: "js-toggle-children relative", data: {'id': "#{dom_id(comment)}"} do %> + <%= link_to "#{dom_id(comment)}", class: "js-toggle-children relative", data: {'id': "#{dom_id(comment)}"} do %> <%= t("shared.hide") %> <%= t("comments.comment.responses", count: comment.children.size) %> @@ -94,11 +93,13 @@
  • <% end %> -
      - <% child_comments_of(comment).each do |child| %> - <%= render 'comments/comment', comment: child %> - <% end %> -
    +
  • +
      + <% child_comments_of(comment).each do |child| %> + <%= render 'comments/comment', comment: child %> + <% end %> +
    +
<% end %> From 170ef4e680e52d3a2036e76996a3d09b95958cff Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Tue, 27 Dec 2016 16:17:43 +0100 Subject: [PATCH 05/22] improves styles for users avatar --- app/assets/stylesheets/layout.scss | 15 ++++++--------- app/assets/stylesheets/participation.scss | 19 +++++++------------ 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index e18accc53..9b52e51db 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -901,16 +901,12 @@ img.avatar, img.admin-avatar, img.moderator-avatar, img.initialjs-avatar { } .author-deleted, .user-deleted { - background-color: rgba(255,255,255,.5); color: rgba(0,0,0,.4); - font-size: rem-calc(40); - left: 11px; - position: absolute; - top: 72px; -} - -.user-deleted { - top: -4px; + display: inline-block; + font-size: rem-calc(32); + line-height: rem-calc(32); + height: rem-calc(32); + vertical-align: top; } .user-permissions { @@ -1675,6 +1671,7 @@ table { .comment-info { color: $text-medium; + display: inline-block; font-size: $small-font-size; line-height: rem-calc(32); // Same as avatar height diff --git a/app/assets/stylesheets/participation.scss b/app/assets/stylesheets/participation.scss index a5e1d7df2..143595de7 100644 --- a/app/assets/stylesheets/participation.scss +++ b/app/assets/stylesheets/participation.scss @@ -325,9 +325,13 @@ clear: both; color: $text-medium; font-size: $small-font-size; - min-height: $line-height*2; + margin-bottom: $line-height/2; position: relative; + span { + line-height: rem-calc(32); // Same as avatar height + } + a { color: $text-medium; } @@ -337,15 +341,6 @@ line-height: $line-height; margin: 0; } - - .author-deleted { - left: 0; - top: 4px; - } - - .author.deleted { - margin-left: rem-calc(48); - } } .debate-description, .proposal-description { @@ -370,9 +365,9 @@ } .author-photo { - line-height: $line-height*2; + line-height: rem-calc(32); margin-right: rem-calc(6); - vertical-align: middle; + vertical-align: top; width: 32px; } From a95edee7c7cc7ddfc0820c9e035960543747e3bd Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Tue, 27 Dec 2016 16:29:32 +0100 Subject: [PATCH 06/22] improves styles for reply and deleted comments --- app/assets/stylesheets/layout.scss | 10 +++++++--- app/views/comments/_comment.html.erb | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index 9b52e51db..734a4bfe6 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -1626,6 +1626,10 @@ table { .divider { color: $text-light; } + + form { + margin-top: $line-height/2; + } } .comment-user { @@ -1655,13 +1659,13 @@ table { .is-deleted { background: #E7E7E7; - margin-left: rem-calc(42); - padding: $line-height/4 $line-height/2; + margin-left: $line-height; + padding: $line-height/2; } .comment-children { border-left: 1px dashed $border; - margin-left: rem-calc(42); + margin-left: $line-height; padding-left: $line-height/4; @media only screen and (max-width: 40em) { diff --git a/app/views/comments/_comment.html.erb b/app/views/comments/_comment.html.erb index f215068ca..0acce8bd5 100644 --- a/app/views/comments/_comment.html.erb +++ b/app/views/comments/_comment.html.erb @@ -91,8 +91,8 @@ <%= render 'comments/form', {commentable: comment.commentable, parent_id: comment.id, toggeable: true} %> <% end %> - - <% end %> + <% end %> +
    • <% child_comments_of(comment).each do |child| %> From b8f60b48fe073d554f9f448d1bd01f579badcf53 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Tue, 27 Dec 2016 16:30:56 +0100 Subject: [PATCH 07/22] changes time tags to span --- app/views/comments/_comment.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/comments/_comment.html.erb b/app/views/comments/_comment.html.erb index 0acce8bd5..23dd514d1 100644 --- a/app/views/comments/_comment.html.erb +++ b/app/views/comments/_comment.html.erb @@ -57,7 +57,7 @@ <% end %> -  •  +  • <%= l comment.created_at.to_datetime, format: :datetime %>
      _reply" class="reply"> - +
      <%= render 'comments/votes', comment: comment %> - +
      <% if comment.children.size > 0 %> <%= link_to "#{dom_id(comment)}", class: "js-toggle-children relative", data: {'id': "#{dom_id(comment)}"} do %> From d554ec810aa433d460a8f4ccc741c784b5f92076 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 27 Dec 2016 11:41:38 +0100 Subject: [PATCH 09/22] adds document counter to signature sheet --- app/views/admin/signature_sheets/show.html.erb | 5 +++++ config/locales/admin.en.yml | 1 + config/locales/admin.es.yml | 1 + spec/features/admin/signature_sheets_spec.rb | 4 ++++ 4 files changed, 11 insertions(+) diff --git a/app/views/admin/signature_sheets/show.html.erb b/app/views/admin/signature_sheets/show.html.erb index a3787b67d..0c2536b34 100644 --- a/app/views/admin/signature_sheets/show.html.erb +++ b/app/views/admin/signature_sheets/show.html.erb @@ -8,6 +8,11 @@ <%= @signature_sheet.author.name %>
      +

      + <%= t("admin.signature_sheets.show.document_count") %> + <%= @signature_sheet.signatures.count %> +

      +

      <%= t("admin.signature_sheets.show.documents") %>

      <%= simple_format @signature_sheet.document_numbers %> diff --git a/config/locales/admin.en.yml b/config/locales/admin.en.yml index b442d68d5..09ca4579a 100755 --- a/config/locales/admin.en.yml +++ b/config/locales/admin.en.yml @@ -312,6 +312,7 @@ en: created_at: Created author: Author documents: Documents + document_count: "Number of documents:" verified: one: "There is %{count} valid signature" other: "There are %{count} valid signatures" diff --git a/config/locales/admin.es.yml b/config/locales/admin.es.yml index 15c6697fb..b95af6e1c 100644 --- a/config/locales/admin.es.yml +++ b/config/locales/admin.es.yml @@ -310,6 +310,7 @@ es: created_at: Creado author: Autor documents: Documentos + document_count: "Número de documentos:" verified: one: "Hay %{count} firma válida" other: "Hay %{count} firmas válidas" diff --git a/spec/features/admin/signature_sheets_spec.rb b/spec/features/admin/signature_sheets_spec.rb index a2474834a..8243dd913 100644 --- a/spec/features/admin/signature_sheets_spec.rb +++ b/spec/features/admin/signature_sheets_spec.rb @@ -59,6 +59,10 @@ feature 'Signature sheets' do expect(page).to have_content signature_sheet.created_at.strftime("%d %b %H:%M") expect(page).to have_content user.name + within("#document_count") do + expect(page).to have_content 3 + end + within("#verified_signatures") do expect(page).to have_content 1 end From 113c4551aa76c1e569f03a6447dc4272940ba440 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 27 Dec 2016 12:00:22 +0100 Subject: [PATCH 10/22] makes signatures aware of spaces between numbers and letter --- app/models/signature_sheet.rb | 2 +- spec/models/signature_sheet_spec.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/models/signature_sheet.rb b/app/models/signature_sheet.rb index 6852820bb..48447489d 100644 --- a/app/models/signature_sheet.rb +++ b/app/models/signature_sheet.rb @@ -29,7 +29,7 @@ class SignatureSheet < ActiveRecord::Base end def parsed_document_numbers - document_numbers.split(/\W+/) + document_numbers.split(/\r\n|\n|[,]/).collect {|d| d.gsub(/\s+/, '') } end def signable_found diff --git a/spec/models/signature_sheet_spec.rb b/spec/models/signature_sheet_spec.rb index d8f5c3513..473a7b96d 100644 --- a/spec/models/signature_sheet_spec.rb +++ b/spec/models/signature_sheet_spec.rb @@ -76,6 +76,12 @@ describe SignatureSheet do expect(signature_sheet.parsed_document_numbers).to eq(['123A', '456B', '789C', '123B']) end + + it "strips spaces between number and letter" do + signature_sheet.document_numbers = "123 A\n456 B \n 789C" + + expect(signature_sheet.parsed_document_numbers).to eq(['123A', '456B', '789C']) + end end end \ No newline at end of file From c9f62bf2b94a9114c34e008960ba42415c8daecf Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 27 Dec 2016 12:05:37 +0100 Subject: [PATCH 11/22] fixes conflicts --- config/initializers/delayed_job_config.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/delayed_job_config.rb b/config/initializers/delayed_job_config.rb index 07e961c9d..da165ab39 100644 --- a/config/initializers/delayed_job_config.rb +++ b/config/initializers/delayed_job_config.rb @@ -6,7 +6,7 @@ end Delayed::Worker.destroy_failed_jobs = false Delayed::Worker.sleep_delay = 2 Delayed::Worker.max_attempts = 3 -Delayed::Worker.max_run_time = 30.seconds +Delayed::Worker.max_run_time = 10.minutes Delayed::Worker.read_ahead = 10 Delayed::Worker.default_queue_name = 'default' Delayed::Worker.raise_signal_exceptions = :term From 0a6e86ea835f7fdcfa119fec2f568d8f9e0a54c9 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 27 Dec 2016 12:26:56 +0100 Subject: [PATCH 12/22] increase delayed job max run time to 30 minutes --- config/initializers/delayed_job_config.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/delayed_job_config.rb b/config/initializers/delayed_job_config.rb index da165ab39..eebdf0843 100644 --- a/config/initializers/delayed_job_config.rb +++ b/config/initializers/delayed_job_config.rb @@ -6,7 +6,7 @@ end Delayed::Worker.destroy_failed_jobs = false Delayed::Worker.sleep_delay = 2 Delayed::Worker.max_attempts = 3 -Delayed::Worker.max_run_time = 10.minutes +Delayed::Worker.max_run_time = 30.minutes Delayed::Worker.read_ahead = 10 Delayed::Worker.default_queue_name = 'default' Delayed::Worker.raise_signal_exceptions = :term From 122446ef62b6d3eaf9527b5422db87ff5f350706 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 27 Dec 2016 12:44:55 +0100 Subject: [PATCH 13/22] find or create signatures in case of a timeout --- app/models/signature_sheet.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/signature_sheet.rb b/app/models/signature_sheet.rb index 48447489d..9720c891f 100644 --- a/app/models/signature_sheet.rb +++ b/app/models/signature_sheet.rb @@ -22,7 +22,7 @@ class SignatureSheet < ActiveRecord::Base def verify_signatures parsed_document_numbers.each do |document_number| - signature = signatures.create(document_number: document_number) + signature = self.signatures.where(document_number: document_number).first_or_create signature.verify end update(processed: true) From 3b28b56c5cb373cb552b2c872ec2d8f403d72b83 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Wed, 28 Dec 2016 14:36:06 +0100 Subject: [PATCH 14/22] improves html structure for comments --- app/assets/stylesheets/layout.scss | 25 ++-- app/views/comments/_comment.html.erb | 200 +++++++++++++-------------- app/views/comments/_form.html.erb | 2 +- 3 files changed, 110 insertions(+), 117 deletions(-) diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index 734a4bfe6..0ef13f01a 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -1065,10 +1065,6 @@ img.avatar, img.admin-avatar, img.moderator-avatar, img.initialjs-avatar { background: #C0392B; } -.is-deleted { - background: #E7E7E7; -} - .level-1 { background: #1ABC9C; } @@ -1657,20 +1653,12 @@ table { } } - .is-deleted { - background: #E7E7E7; - margin-left: $line-height; - padding: $line-height/2; - } - .comment-children { border-left: 1px dashed $border; - margin-left: $line-height; - padding-left: $line-height/4; - - @media only screen and (max-width: 40em) { - margin-left: rem-calc(16); - } + display: inline-block; + margin-left: rem-calc(16); + padding-left: rem-calc(8); + width: 100%; } .comment-info { @@ -1710,6 +1698,11 @@ table { } } +.comment-form { + display: inline-block; + width: 100%; +} + // 16. Flags // --------- diff --git a/app/views/comments/_comment.html.erb b/app/views/comments/_comment.html.erb index cb5ede7f8..8c705d383 100644 --- a/app/views/comments/_comment.html.erb +++ b/app/views/comments/_comment.html.erb @@ -1,105 +1,105 @@ <% cache [locale_and_user_status(comment), comment, commentable_cache_key(comment.commentable), comment.author, (@comment_flags[comment.id] if @comment_flags)] do %> -
      -
        -
      • - <% if comment.hidden? || comment.user.hidden? %> - <% if comment.children.size > 0 %> -
        -

        <%= t("comments.comment.deleted") %>

        -
        - <% end %> - <% else %> - <% if comment.as_administrator? %> - <%= image_tag("avatar_admin.png", size: 32, class: "admin-avatar float-left") %> - <% elsif comment.as_moderator? %> - <%= image_tag("avatar_moderator.png", size: 32, class: "moderator-avatar float-left") %> - <% else %> - <% if comment.user.hidden? || comment.user.erased? %> - - <% elsif comment.user.organization? %> - <%= image_tag("avatar_collective.png", size: 32, class: "avatar float-left") %> - <% else %> - <%= avatar_image(comment.user, seed: comment.user_id, size: 32, class: "float-left") %> - <% end %> - <% end %> - -
        - - <% if comment.as_administrator? %> - <%= t("comments.comment.admin") %> #<%= comment.administrator_id%> - <% elsif comment.as_moderator? %> - <%= t("comments.comment.moderator") %> #<%= comment.moderator_id%> - <% else %> - - <% if comment.user.hidden? || comment.user.erased? %> - <%= t("comments.comment.user_deleted") %> - <% else %> - <%= link_to comment.user.name, user_path(comment.user) %> - <% if comment.user.display_official_position_badge? %> -  •  - - <%= comment.user.official_position %> - - <% end %> - <% end %> - <% if comment.user.verified_organization? %> -  •  - - <%= t("shared.collective") %> - - <% end %> - <% if comment.user_id == comment.commentable.author_id %> -  •  - - <%= t("comments.comment.author") %> - - <% end %> - - <% end %> - -  • <%= l comment.created_at.to_datetime, format: :datetime %> -
        - -
        - <%= simple_format text_with_links(comment.body), {}, sanitize: false %> -
        - -
        -
        - <%= render 'comments/votes', comment: comment %> -
        - - <% if comment.children.size > 0 %> - <%= link_to "#{dom_id(comment)}", class: "js-toggle-children relative", data: {'id': "#{dom_id(comment)}"} do %> - - <%= t("shared.hide") %> - <%= t("comments.comment.responses", count: comment.children.size) %> - <% end %> - <% else %> - <%= t("comments.comment.responses", count: 0) %> - <% end %> - - <% if user_signed_in? %> -  |  - <%= link_to(comment_link_text(comment), "", - class: "js-add-comment-link", data: {'id': dom_id(comment)}) %> - - <%= render 'comments/actions', comment: comment %> - - <%= render 'comments/form', {commentable: comment.commentable, parent_id: comment.id, toggeable: true} %> - <% end %> +
          +
        • + <% if comment.hidden? || comment.user.hidden? %> + <% if comment.children.size > 0 %> +
          +

          <%= t("comments.comment.deleted") %>

          <% end %> -
        • -
        • -
            - <% child_comments_of(comment).each do |child| %> - <%= render 'comments/comment', comment: child %> + <% else %> + <% if comment.as_administrator? %> + <%= image_tag("avatar_admin.png", size: 32, class: "admin-avatar float-left") %> + <% elsif comment.as_moderator? %> + <%= image_tag("avatar_moderator.png", size: 32, class: "moderator-avatar float-left") %> + <% else %> + <% if comment.user.hidden? || comment.user.erased? %> + + <% elsif comment.user.organization? %> + <%= image_tag("avatar_collective.png", size: 32, class: "avatar float-left") %> + <% else %> + <%= avatar_image(comment.user, seed: comment.user_id, size: 32, class: "float-left") %> <% end %> -
          -
        • -
        -
        + <% end %> + +
        + + <% if comment.as_administrator? %> + <%= t("comments.comment.admin") %> #<%= comment.administrator_id%> + <% elsif comment.as_moderator? %> + <%= t("comments.comment.moderator") %> #<%= comment.moderator_id%> + <% else %> + + <% if comment.user.hidden? || comment.user.erased? %> + <%= t("comments.comment.user_deleted") %> + <% else %> + <%= link_to comment.user.name, user_path(comment.user) %> + <% if comment.user.display_official_position_badge? %> +  •  + + <%= comment.user.official_position %> + + <% end %> + <% end %> + <% if comment.user.verified_organization? %> +  •  + + <%= t("shared.collective") %> + + <% end %> + <% if comment.user_id == comment.commentable.author_id %> +  •  + + <%= t("comments.comment.author") %> + + <% end %> + + <% end %> + +  • <%= l comment.created_at.to_datetime, format: :datetime %> +
        + +
        + <%= simple_format text_with_links(comment.body), {}, sanitize: false %> +
        + +
        +
        + <%= render 'comments/votes', comment: comment %> +
        + + <% if comment.children.size > 0 %> + <%= link_to "#{dom_id(comment)}", class: "js-toggle-children relative", data: {'id': "#{dom_id(comment)}"} do %> + + <%= t("shared.hide") %> + <%= t("comments.comment.responses", count: comment.children.size) %> + <% end %> + <% else %> + <%= t("comments.comment.responses", count: 0) %> + <% end %> + + <% if user_signed_in? %> +  |  + <%= link_to(comment_link_text(comment), "", + class: "js-add-comment-link", data: {'id': dom_id(comment)}) %> + + <%= render 'comments/actions', comment: comment %> + + <%= render 'comments/form', {commentable: comment.commentable, parent_id: comment.id, toggeable: true} %> + <% end %> +
        + <% end %> +
      • +
      • +
          + <% child_comments_of(comment).each do |child| %> +
        • + <%= render 'comments/comment', comment: child %> +
        • + <% end %> +
        +
      • +
      <% end %> diff --git a/app/views/comments/_form.html.erb b/app/views/comments/_form.html.erb index 601e45a47..e3399c383 100644 --- a/app/views/comments/_form.html.erb +++ b/app/views/comments/_form.html.erb @@ -1,6 +1,6 @@ <% cache [locale_and_user_status, parent_id, commentable_cache_key(commentable)] do %> <% css_id = parent_or_commentable_dom_id(parent_id, commentable) %> -
      > +
      class="comment-form"> <%= form_for Comment.new, remote: true do |f| %> <%= label_tag "comment-body-#{css_id}", t("comments.form.leave_comment") %> <%= f.text_area :body, id: "comment-body-#{css_id}", maxlength: Comment.body_max_length, label: false %> From 25f34cdab96171204d571d60b40f54322c9d30cf Mon Sep 17 00:00:00 2001 From: rgarcia Date: Wed, 28 Dec 2016 19:42:02 +0100 Subject: [PATCH 15/22] Only stores alphanumeric characters of a signature's document number --- app/models/signature.rb | 7 +++++++ spec/models/signature_spec.rb | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/app/models/signature.rb b/app/models/signature.rb index 47408858a..06ade968c 100644 --- a/app/models/signature.rb +++ b/app/models/signature.rb @@ -10,6 +10,8 @@ class Signature < ActiveRecord::Base delegate :signable, to: :signature_sheet + before_validation :clean_document_number + def verified? user_exists? || in_census? end @@ -58,6 +60,11 @@ class Signature < ActiveRecord::Base User.create!(user_params) end + def clean_document_number + return if self.document_number.blank? + self.document_number = self.document_number.gsub(/[^a-z0-9]+/i, "").upcase + end + def random_password (0...20).map { ('a'..'z').to_a[rand(26)] }.join end diff --git a/spec/models/signature_spec.rb b/spec/models/signature_spec.rb index 6f7237484..8bb090614 100644 --- a/spec/models/signature_spec.rb +++ b/spec/models/signature_spec.rb @@ -13,6 +13,12 @@ describe Signature do it "should not be valid without a document number" do signature.document_number = nil expect(signature).to_not be_valid + + signature.document_number = "" + expect(signature).to_not be_valid + + signature.document_number = " " + expect(signature).to_not be_valid end it "should not be valid without an associated signature sheet" do @@ -22,6 +28,24 @@ describe Signature do end + describe "#clean_document_number" do + it "removes non alphanumeric characters" do + signature = create(:signature, document_number: "123-[;,9]") + expect(signature.document_number).to eq("1239") + end + + it "upcases letter in document number" do + signature = create(:signature, document_number: "123a") + expect(signature.document_number).to eq("123A") + end + + it "deals gracefully with empty document numbers" do + signature = build(:signature, document_number: "") + signature.clean_document_number + expect(signature.document_number).to eq("") + end + end + describe "#verified?" do it "returns true if user exists" do From d0b0782c46b3a4e01aac2d566bdb07a7f0c1c323 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Wed, 28 Dec 2016 21:23:38 +0100 Subject: [PATCH 16/22] sets only one server to run delayed jobs --- config/deploy.rb | 1 + config/deploy/preproduction.rb | 2 +- config/deploy/production.rb | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config/deploy.rb b/config/deploy.rb index 30b08c56d..52fa7a255 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -30,6 +30,7 @@ set :keep_releases, 5 set :local_user, ENV['USER'] set :delayed_job_workers, 2 +set :delayed_job_roles, :background set(:config_files, %w( log_rotation diff --git a/config/deploy/preproduction.rb b/config/deploy/preproduction.rb index 16d1c5bb7..74c96871e 100644 --- a/config/deploy/preproduction.rb +++ b/config/deploy/preproduction.rb @@ -6,5 +6,5 @@ set :ssh_options, port: deploysecret(:ssh_port) set :stage, :preproduction set :rails_env, :preproduction -server deploysecret(:server1), user: deploysecret(:user), roles: %w(web app db importer cron) +server deploysecret(:server1), user: deploysecret(:user), roles: %w(web app db importer cron background) server deploysecret(:server2), user: deploysecret(:user), roles: %w(web app db importer) diff --git a/config/deploy/production.rb b/config/deploy/production.rb index 5e002af1a..90eb501c2 100644 --- a/config/deploy/production.rb +++ b/config/deploy/production.rb @@ -7,6 +7,6 @@ set :stage, :production set :rails_env, :production #server deploysecret(:server1), user: deploysecret(:user), roles: %w(web app db importer) -server deploysecret(:server2), user: deploysecret(:user), roles: %w(web app db importer cron) +server deploysecret(:server2), user: deploysecret(:user), roles: %w(web app db importer cron background) server deploysecret(:server3), user: deploysecret(:user), roles: %w(web app db importer) server deploysecret(:server4), user: deploysecret(:user), roles: %w(web app db importer) From 365faeff315b56c215eb1b0c1cf9ff77e38b7e52 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 29 Dec 2016 12:05:29 +0100 Subject: [PATCH 17/22] removes physical votes from proposals --- app/models/proposal.rb | 2 +- .../20161229110336_remove_physical_votes_from_proposals.rb | 5 +++++ spec/helpers/proposals_helper_spec.rb | 5 ----- 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20161229110336_remove_physical_votes_from_proposals.rb diff --git a/app/models/proposal.rb b/app/models/proposal.rb index 7bd4b7a92..cba6d04ba 100644 --- a/app/models/proposal.rb +++ b/app/models/proposal.rb @@ -99,7 +99,7 @@ class Proposal < ActiveRecord::Base end def total_votes - cached_votes_up + physical_votes + cached_votes_up end def voters diff --git a/db/migrate/20161229110336_remove_physical_votes_from_proposals.rb b/db/migrate/20161229110336_remove_physical_votes_from_proposals.rb new file mode 100644 index 000000000..34e0e5e44 --- /dev/null +++ b/db/migrate/20161229110336_remove_physical_votes_from_proposals.rb @@ -0,0 +1,5 @@ +class RemovePhysicalVotesFromProposals < ActiveRecord::Migration + def change + remove_column :proposals, :physical_votes + end +end diff --git a/spec/helpers/proposals_helper_spec.rb b/spec/helpers/proposals_helper_spec.rb index 82206afb5..0f7c70b39 100644 --- a/spec/helpers/proposals_helper_spec.rb +++ b/spec/helpers/proposals_helper_spec.rb @@ -13,11 +13,6 @@ describe ProposalsHelper do expect(progress_bar_percentage(proposal)).to eq 50 end - it "should take into account the physical votes" do - proposal = create(:proposal, cached_votes_up: ((Proposal.votes_needed_for_success/2)-100), physical_votes: 100) - expect(progress_bar_percentage(proposal)).to eq 50 - end - it "should be 100 if there are more votes than needed" do proposal = create(:proposal, cached_votes_up: Proposal.votes_needed_for_success*2) expect(progress_bar_percentage(proposal)).to eq 100 From 2a0267a1af937f7adae64c90aa2ac1abd257ca51 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 29 Dec 2016 12:34:50 +0100 Subject: [PATCH 18/22] updates db schema --- db/schema.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index acfc87dbb..0c3cfd3cf 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20161221151239) do +ActiveRecord::Schema.define(version: 20161229110336) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -297,7 +297,6 @@ ActiveRecord::Schema.define(version: 20161221151239) do t.string "responsible_name", limit: 60 t.text "summary" t.string "video_url" - t.integer "physical_votes", default: 0 t.tsvector "tsv" t.integer "geozone_id" t.datetime "retired_at" From 43c18d58ac33e01e0e190d69b0cc57cd15a32cba Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 29 Dec 2016 12:47:57 +0100 Subject: [PATCH 19/22] fixes specs --- app/models/proposal.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/proposal.rb b/app/models/proposal.rb index cba6d04ba..2f0c76094 100644 --- a/app/models/proposal.rb +++ b/app/models/proposal.rb @@ -50,7 +50,7 @@ class Proposal < ActiveRecord::Base scope :last_week, -> { where("proposals.created_at >= ?", 7.days.ago)} scope :retired, -> { where.not(retired_at: nil) } scope :not_retired, -> { where(retired_at: nil) } - scope :successfull, -> { where("cached_votes_up + physical_votes >= ?", Proposal.votes_needed_for_success)} + scope :successfull, -> { where("cached_votes_up >= ?", Proposal.votes_needed_for_success)} def to_param "#{id}-#{title}".parameterize From 13d9f6c2944a680a242bf6a65710b78d8a264f90 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Fri, 30 Dec 2016 11:55:44 +0100 Subject: [PATCH 20/22] removes obsolete spec --- spec/helpers/proposals_helper_spec.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/spec/helpers/proposals_helper_spec.rb b/spec/helpers/proposals_helper_spec.rb index 0f7c70b39..cee1ec648 100644 --- a/spec/helpers/proposals_helper_spec.rb +++ b/spec/helpers/proposals_helper_spec.rb @@ -40,10 +40,6 @@ describe ProposalsHelper do expect(supports_percentage(proposal)).to eq "100%" end - it "should take into account the physical votes" do - proposal = create(:proposal, physical_votes: Proposal.votes_needed_for_success/2) - expect(supports_percentage(proposal)).to eq "50%" - end end end \ No newline at end of file From d8b4af5add9af8046e8180ef478aa7b2a6134578 Mon Sep 17 00:00:00 2001 From: Alberto Garcia Cabeza Date: Fri, 30 Dec 2016 17:17:46 +0100 Subject: [PATCH 21/22] adds meta description and keywords --- app/views/layouts/_meta_tags.html.erb | 5 +++++ app/views/layouts/application.html.erb | 3 ++- app/views/layouts/devise.html.erb | 1 + config/locales/settings.en.yml | 2 ++ config/locales/settings.es.yml | 2 ++ db/dev_seeds.rb | 4 ++-- db/seeds.rb | 4 ++++ 7 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 app/views/layouts/_meta_tags.html.erb diff --git a/app/views/layouts/_meta_tags.html.erb b/app/views/layouts/_meta_tags.html.erb new file mode 100644 index 000000000..443f7352f --- /dev/null +++ b/app/views/layouts/_meta_tags.html.erb @@ -0,0 +1,5 @@ +" /> + +" /> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 34e7776fb..7a1dae4d9 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -4,7 +4,8 @@ - <%=render "layouts/tracking_data"%> + <%= render "layouts/tracking_data" %> + <%= render "layouts/meta_tags" %> <%= content_for?(:title) ? yield(:title) : setting['org_name'] %> <%= stylesheet_link_tag "application" %>