diff --git a/app/assets/fonts/icons.eot b/app/assets/fonts/icons.eot index c3c5d6289..13bfbda6c 100644 Binary files a/app/assets/fonts/icons.eot and b/app/assets/fonts/icons.eot differ diff --git a/app/assets/fonts/icons.svg b/app/assets/fonts/icons.svg index a548d9575..16cfb66b8 100644 --- a/app/assets/fonts/icons.svg +++ b/app/assets/fonts/icons.svg @@ -56,6 +56,8 @@ - + + + diff --git a/app/assets/fonts/icons.ttf b/app/assets/fonts/icons.ttf index 6f938f863..8051071fb 100644 Binary files a/app/assets/fonts/icons.ttf and b/app/assets/fonts/icons.ttf differ diff --git a/app/assets/fonts/icons.woff b/app/assets/fonts/icons.woff index f3c31e804..2c48a6868 100644 Binary files a/app/assets/fonts/icons.woff and b/app/assets/fonts/icons.woff differ diff --git a/app/assets/javascripts/allegations.js.coffee b/app/assets/javascripts/allegations.js.coffee new file mode 100644 index 000000000..3fac8d6f0 --- /dev/null +++ b/app/assets/javascripts/allegations.js.coffee @@ -0,0 +1,16 @@ +App.Allegations = + + toggle_comments: -> + $('.draft-allegation').toggleClass('comments-on'); + + toggle_index: -> + $('.draft-allegation').toggleClass('comments-on'); + + initialize: -> + $('#js-toggle-allegation-comments').on + click: -> + App.Allegations.toggle_comments() + + $('#js-toggle-allegation-index').on + click: -> + App.Allegations.toggle_index() diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 0ec556717..e81e74f34 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -49,6 +49,7 @@ //= require markdown-it //= require markdown_editor //= require cocoon +//= require allegations //= require custom var initialize_modules = function() { @@ -72,6 +73,7 @@ var initialize_modules = function() { App.Banners.initialize(); App.SocialShare.initialize(); App.MarkdownEditor.initialize(); + App.Allegations.initialize(); }; $(function(){ diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 36e055a4e..6a773e38f 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -6,6 +6,8 @@ @import "admin"; @import "layout"; @import "participation"; +@import "legislation"; +@import "legislation_process"; @import "custom"; @import "c3"; @import "annotator.min"; diff --git a/app/assets/stylesheets/icons.scss b/app/assets/stylesheets/icons.scss index a4b0da4f7..015111db0 100644 --- a/app/assets/stylesheets/icons.scss +++ b/app/assets/stylesheets/icons.scss @@ -1,5 +1,4 @@ @charset "UTF-8"; - @font-face { font-family: 'icons'; src: font-url('icons.eot'); @@ -10,7 +9,6 @@ font-weight: normal; font-style: normal; } - [data-icon]:before { font-family: "icons" !important; content: attr(data-icon); @@ -23,7 +21,6 @@ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } - [class^="icon-"]:before, [class*=" icon-"]:before { font-family: "icons" !important; @@ -36,7 +33,6 @@ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } - .icon-angle-down:before { content: "\61"; } @@ -163,6 +159,12 @@ .icon-whatsapp:before { content: "\50"; } +.icon-zip:before { + content: "\4f"; +} +.icon-banner:before { + content: "\51"; +} .icon-arrow-down:before { content: "\52"; } @@ -172,6 +174,21 @@ .icon-arrow-right:before { content: "\55"; } +.icon-check-circle:before { + content: "\56"; +} +.icon-arrow-top:before { + content: "\57"; +} .icon-checkmark-circle:before { content: "\59"; } +.icon-minus-square:before { + content: "\58"; +} +.icon-plus-square:before { + content: "\5a"; +} +.icon-expand:before { + content: "\30"; +} diff --git a/app/assets/stylesheets/legislation.scss b/app/assets/stylesheets/legislation.scss new file mode 100644 index 000000000..389d92e03 --- /dev/null +++ b/app/assets/stylesheets/legislation.scss @@ -0,0 +1,131 @@ +// Table of Contents +// +// 01. Hero +// 02. Sidebar menu +// 03. Legislation cards +// + +// 01. Hero +// ----------------- +.legislation-hero { + margin-bottom: 4rem; +} + +.brand-heading { + background: $brand; + + .column { + padding-top: 10rem; + padding-bottom: 10rem; + + h4 { + font-weight: 400; + text-align: center; + color: white; + } + } +} + +// 02. Sidebar menu +// ----------------- +.legislation-categories { + ul { + list-style: none; + padding-left: 0; + margin-left: 0; + + li { + cursor: pointer; + + @include breakpoint(medium) { + max-width: 80%; + } + + h4 { + font-weight: 400; + color: $text-medium; + margin-bottom: 3rem; + transition: color 0.25s ease-out, color 0.25s ease-out; + } + + &:hover h4, &:active h4 { + color: $brand; + } + } + + .active h4 { + font-weight: 700; + color: $brand; + padding-bottom: 0.5rem; + border-bottom: 2px solid $brand; + } + } +} + +// 03. Legislation cards +// ----------------- +.legislation { + margin: 0 0 4rem 0; +} + +.legislation { + background: white; + border: 1px solid; + border-color: #e5e6e9 #dfe0e4 #d0d1d5; + border-radius: 0; + box-shadow: 0px 1px 3px 0 #DEE0E3; + min-height: 12rem; + padding: 2rem 0 0 0; +} + +.button-legislation { + background: white; + border: 1px solid #2C9BE5; + color: #2C9BE5; + display: inline-block; + font-weight: 700; + margin-top: rem-calc(12); + + .icon-comments { + margin-right: 0.5rem; + color: $text-medium; + transition: color 0.25s ease-out, color 0.25s ease-out; + } + + &:hover, &:active { + border: 1px solid lighten(#2C9BE5, 25%); + cursor: pointer; + } + + &:hover .icon-comments, &:active .icon-comments { + color: white; + } +} + +.legislation-text { + margin-bottom: 1rem; + + h3 a { + color: $black; + } +} + +.legislation-calendar-info p { + font-size: $small-font-size; + color: $text-medium; + margin-bottom: 0; +} + +.legislation-calendar { + background: #E5ECF2; + padding-top: 1rem; + + h5 { + margin-bottom: 0; + color: #61686E; + } + + p { + font-size: $small-font-size; + } +} diff --git a/app/assets/stylesheets/legislation_process.scss b/app/assets/stylesheets/legislation_process.scss new file mode 100644 index 000000000..b5e980f25 --- /dev/null +++ b/app/assets/stylesheets/legislation_process.scss @@ -0,0 +1,1047 @@ +// Table of Contents +// +// 01. Utils +// 02. Hero +// 03. Legislation process +// 04. Debate list +// 05. Debate quiz +// 06. Legislation draft +// 07. Legislation allegations +// 08. Legislation changes +// 09. Legislation comments +// 10. Legislation draft comment +// + +// 01. Utils +// ----------------- +.grey { + color: #878787; +} + +.grey-heading { + background: #E6E6E6; +} + +.center { + text-align: center; +} + +.right { + text-align: right; +} + +.strong { + font-weight: 700; +} + +// 02. Hero +// ----------------- +.legislation-hero { + padding-top: 1.5rem; + margin-bottom: 2rem; + + @include breakpoint(medium) { + padding-top: 3.5rem; + margin-bottom: 4rem; + } + + h4 { + color: #878787; + text-transform: uppercase; + font-weight: 400; + } + + ul { + list-style: none; + margin-left: 0; + + li:before { + vertical-align: text-bottom; + padding-right: 0.5rem; + content: "■"; + color: #8AA8BE; + } + } + + .half-gradient { + /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e6e6e6+0,e6e6e6+50,ffffff+50 */ + background: #e6e6e6; /* Old browsers */ + background: -moz-linear-gradient(top, #e6e6e6 0%, #e6e6e6 50%, #ffffff 50%); /* FF3.6-15 */ + background: -webkit-linear-gradient(top, #e6e6e6 0%,#e6e6e6 50%,#ffffff 50%); /* Chrome10-25,Safari5.1-6 */ + background: linear-gradient(to bottom, #e6e6e6 0%,#e6e6e6 50%,#ffffff 50%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e6e6e6', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */ + } + + .center .button { + background: #004A83; + margin-bottom: 0; + } + + .headline { + margin-bottom: 1rem; + + @include breakpoint(medium) { + margin-bottom: 4rem; + + } + } + + .description { + margin-bottom: 1rem; + + @include breakpoint(medium) { + margin-bottom: 0; + } + } + + .button-subscribe { + margin-top: 1rem; + + h3 { + margin-bottom: 0; + } + + p { + margin-bottom: 0; + font-size: $small-font-size; + } + + &:hover h3 { + color: white; + } + + @include breakpoint(medium) { + padding: 0.5em 1em; + margin-top: 3rem; + } + } +} + +// 03. Legislation process +// ----------------- +.legislation-process-categories { + list-style: none; + margin-left: 0; + padding-left: 0; + border-bottom: 1px solid $medium-gray; + + li { + cursor: pointer; + margin-left: 0; + display: inline-block; + margin-bottom: 1rem; + + @include breakpoint(medium) { + margin-left: 3rem; + margin-bottom: 0; + } + + a, + h4 { + color: #6D6D6D; + margin-bottom: 0; + } + + a { + &:hover, &:active { + text-decoration: none; + } + + p { + margin-bottom: 0; + + @include breakpoint(medium) { + margin-bottom: 1rem; + } + } + } + } + + .active { + border-bottom: 2px solid $brand; + } +} + +// 04. Debate list +// ----------------- +.debate-chooser { + padding: 2rem 1rem; + + @include breakpoint(medium) { + .debate-chooser { + padding: 2rem 3rem; + } + } + + .debate-block { + margin-bottom: 2.5rem; + + .debate-type { + text-transform: uppercase; + color: #178DCC; + font-weight: 700; + font-size: $small-font-size; + + .icon-debates { + margin-left: 0.2rem; + } + } + + .debate-title a { + color: $brand; + } + + .debate-meta, + .debate-meta a { + font-size: $small-font-size; + color: #6D6D6D; + + .icon-comments { + margin-right: 0.2rem; + } + } + } + + .debate-info { + padding: 1rem; + background: #F4F4F4; + } +} + +// 05. Debate quiz +// ----------------- +.debate-quiz { + + .quiz-header { + margin-bottom: 2rem; + + .quiz-title, .quiz-next { + padding: 1rem; + height: 6rem; + } + + .quiz-title { + background: #E5ECF2; + + .quiz-header-title { + margin-bottom: 0; + text-transform: uppercase; + color: #979B9F; + font-weight: 700; + font-size: $small-font-size; + } + } + + h4 a { + color: $brand; + } + + h4 a:hover { + text-decoration: none; + } + + .quiz-next-link { + + &:hover, &:active { + text-decoration: none; + } + + .quiz-next { + background: #CCDBE5; + font-weight: 700; + color: $brand; + font-size: $small-font-size; + text-align: right; + text-transform: uppercase; + transition: background 0.25s ease-out, background 0.25s ease-out; + + .icon-angle-right { + vertical-align: sub; + } + + &:hover, &:active { + text-decoration: none; + background: $brand; + color: white; + + .icon-angle-right { + color: white; + } + } + } + } + } + + .quiz-question { + margin-bottom: 2rem; + } + + .debate-questions { + list-style: none; + + .control { + position: relative; + display: inline-block; + color: #555; + cursor: pointer; + background: #fff; + border: 1px solid $border; + border-radius: 4px; + padding: 0.75rem 2.5rem; + margin-right: 1.5rem; + } + + .active { + background: #CCDBE6; + border: none; + } + + .control input { + position: absolute; + opacity: 0; + z-index: -1; + } + + .control input:checked ~ .control-indicator { + background-color: $brand; + border: none; + } + + .radio .control-indicator { + border-radius: 50%; + } + + .control-indicator { + position: absolute; + top: 0.95rem; + left: 0.95rem; + display: block; + width: 1rem; + height: 1rem; + line-height: 1rem; + font-size: 65%; + text-align: center; + border: 2px solid #9C9C9C; + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + } +} + +// 06. Legislation draft +// ----------------- +.debate-draft { + padding: 10rem 2rem 15rem 2rem; + display: block; + background: #F2F2F2; + + button { + height: 90px; + + h3 { + margin-bottom: 0; + } + + p { + margin-bottom: 0; + font-size: $small-font-size; + } + } +} + +// 07. Legislation allegations +// ----------------- +.legislation-allegation { + padding-top: 1rem; + margin-bottom: 2rem; + + .headline { + margin-bottom: 0; + } + + .button-circle { + line-height: 0; + padding: 0.5em; + border-radius: 50%; + } + + .icon-checkmark-circle { + font-size: 1.5rem; + vertical-align: bottom; + color: $text-medium; + margin-right: 0.5rem; + } + + .button-subscribed { + margin-top: 1rem; + border: 1px solid #D1D1D1; + background: #F2F2F2; + + h3 { + display: inline-block; + color: $text; + margin-bottom: 0; + } + + p { + margin-bottom: 0; + font-size: $small-font-size; + } + + &:hover h3 { + color: $text; + } + + @include breakpoint(medium) { + padding: 0.5em 1em; + } + } +} + +.draft-panels { + padding: 2rem 0; + + .draft-chooser { + margin-bottom: 2rem; + + h3 { + vertical-align: top; + display: inline-block; + font-weight: 400; + margin-right: 0.5rem; + } + + span { + margin-left: 0.75rem; + font-style: italic; + font-size: $small-font-size; + color: $text-medium; + vertical-align: top; + + @include breakpoint(medium) { + margin-left: 1rem; + } + } + + .select-box { + position: relative; + + @include breakpoint(medium) { + display: inline-block; + } + + select { + margin-bottom: 0; + display: block; + } + + span { + vertical-align: inherit; + font-style: normal; + + a { + text-decoration: underline; + color: $text-medium + } + } + } + + .button { + margin-top: 1rem; + + @include breakpoint(medium) { + margin-top: 0; + } + } + } + + .draft-allegation { + @include breakpoint(medium) { + display: flex; + padding-left: 0.9375rem; + padding-right: 0.9375rem; + } + + .calc-index { + .draft-panel { + cursor: pointer; + } + + .draft-index-rotated { + display: none; + } + } + + // Panel calcs for desktop + @media screen and (min-width: 40em) { + .calc-index { + transition: all 0.25s; + width: calc(25% - 25px); + } + + .calc-text { + transition: all 0.25s; + width: calc(75% - 25px) + } + + .calc-comments { + transition: all 0.25s; + cursor: pointer; + background: #F2F2F2; + width: 50px; + + .draft-panel { + .panel-title { + display: none; + } + } + } + } + + .border-right { + @include breakpoint(medium) { + border-right: 1px solid $border; + } + } + + .draft-panel { + text-transform: uppercase; + font-weight: 700; + padding: 0.5rem 1rem; + color: #696969; + background: #F2F2F2; + font-size: $small-font-size; + + .icon-comments { + margin-right: 0.25rem; + } + + .icon-banner { + line-height: 0; + color: $text-medium; + vertical-align: sub; + margin-right: 0.25rem; + } + } + + .draft-index { + table { + tbody { + border: none; + + tr { + background: white; + + td { + padding: 0.25rem 1rem; + + .icon-plus-square, + .icon-minus-square { + color: $text-medium; + cursor: pointer; + vertical-align: sub; + } + + a { + color: $brand; + text-decoration: underline; + font-size: $small-font-size; + } + } + + .collapse-all { + padding: 1rem; + + a { + color: $text-medium; + } + + .icon-plus-square, + .icon-minus-square { + color: $text-medium; + } + } + } + + .child_group { + td { + padding: 0 1rem; + + table { + margin-bottom: 0.5rem; + } + } + } + } + } + } + + .draft-text { + position: relative; + padding: 1rem; + + @include breakpoint(medium) { + padding: 2rem 2rem 2rem 3rem; + }; + + h2 { + font-weight: 400; + margin-bottom: 2rem; + margin-top: 2rem; + } + + h3 { + font-weight: 400; + margin-bottom: 1rem; + } + + .anchor::before { + display: none; + content: "#"; + color: $text-medium; + position: absolute; + left: 1.5rem; + } + + a { + color: $text; + + &:hover, + &:active, + &:focus { + text-decoration: none; + + h3 { + color: $text; + } + + .anchor::before { + display: block; + } + } + } + } + + .calc-comments { + position: relative; + + .comment-box { + display: none; + } + + .draft-comments-rotated { + @include breakpoint(medium) { + font-size: $small-font-size; + text-transform: uppercase; + font-weight: 700; + color: #696969; + margin-top: 4rem; + -webkit-transform: rotate(-90deg); + -moz-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + -o-transform: rotate(-90deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + } + } + + } + } + + .comments-on { + .calc-index { + width: 50px; + background: #F2F2F2; + cursor: pointer; + + .panel-title { + display: none; + } + + .draft-index { + display: none; + } + + .draft-index-rotated { + @include breakpoint(medium) { + display: block; + font-size: $small-font-size; + text-transform: uppercase; + font-weight: 700; + color: #696969; + margin-top: 1rem; + -webkit-transform: rotate(-90deg); + -moz-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + -o-transform: rotate(-90deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + + .panel-title { + display: block; + } + } + } + } + + .calc-text { + width: calc(65% - 25px); + border-right: none; + + .show-comments { + width: 105%; + background: #FAFAFA; + padding: 0.25rem 2.5rem 0.25rem 0.25rem; + border: 1px solid $border; + margin-bottom: 1rem; + + p { + margin-bottom: 0; + } + } + + } + + .calc-comments { + background: white; + cursor: auto; + width: calc(35% - 25px); + + .draft-panel { + cursor: pointer; + } + + .draft-comments-rotated { + display: none; + } + + .comment-box { + width: 375px; + padding: 1rem; + background: #F9F9F9; + border: 1px solid $border; + display: block; + position: absolute; + top: 230px; + + .button { + font-size: $small-font-size; + padding: 0.5em 1em; + } + + .publish-comment { + float: right; + } + + .comment-header { + color: #838383; + padding-bottom: 0.5rem; + margin-bottom: 1rem; + border-bottom: 1px solid $border; + + .comment-number { + color: $text; + display: inline-block; + } + + .icon-comment { + margin-right: 0.5rem; + } + + a .icon-expand { + color: #838383; + font-size: $small-font-size; + float: right; + } + } + + .comment-input { + padding-bottom: 4rem; + margin-bottom: 1rem; + margin-top: 1rem; + border-bottom: 1px solid $border; + + .comment-advice { + border-top: 1px solid #D0D0D0; + border-right: 1px solid #D0D0D0; + border-left: 1px solid #D0D0D0; + width: 100%; + padding: 0.5rem; + display: inline-block; + font-size: $small-font-size; + background: #DFDFDF; + + .icon-proposals { + color: #838383; + } + + a { + color: #87A3B9; + text-decoration: underline; + } + } + + textarea { + border-radius: 0; + box-shadow: none; + border-top: none; + border-bottom: 1px solid #D0D0D0; + border-right: 1px solid #D0D0D0; + border-left: 1px solid #D0D0D0; + width: 100%; + height: 200px; + margin-bottom: 0.5rem; + } + + .comment-actions { + .cancel-comment { + color: #87A3B9; + text-decoration: underline; + font-size: $small-font-size; + display: inline-block; + } + } + } + + .comment { + border-bottom: 1px solid $border; + padding-bottom: 0.75rem; + margin-bottom: 1rem; + font-size: $small-font-size; + + .comment-text { + margin-bottom: 0.5rem; + + p { + line-height: 1.5; + font-size: $small-font-size; + + &:last-child { + margin-bottom: 0.5rem; + } + } + } + + .comment-meta { + + .comment-more-info { + display: inline-block; + + .comment-expand { + display: inline-block; + + &::after { + content: "|"; + color: #838383; + } + } + .comment-replies { + display: inline-block; + } + } + + .comment-votes { + color: #838383; + float: right; + display: inline-block; + + .comment-votes-number { + margin-right: 0.25rem; + display: inline-block; + + &::after { + margin-left: 0.25rem; + content: "|"; + } + } + + .icon-like, + .icon-unlike { + cursor: pointer; + color: #C7C7C7; + + &:hover, + &:active, + &:focus { + color: #838383; + } + } + + .icon-like { + margin-right: 0.25rem; + } + } + } + } + } + + .comment-box:nth-child(4) { + top: 838px; + } + + .comment-box:nth-child(5) { + top: 2035px; + } + + .draft-panel { + background: #E5E5E5; + border-left: 1px solid #D4D4D4; + + .panel-title { + display: inline-block; + } + } + + .show-for-medium { + .panel-title { + display: none; + } + } + } + } +} + +// 08. Legislation changes +// ----------------- +.legislation-changes { + ul { + list-style: none; + margin-left: 0; + + li { + margin-bottom: 1rem; + + &::before { + margin-right: 0.25rem; + content: "—" + } + + .changes-link { + display: block; + margin-left: 1rem; + font-size: $small-font-size; + + @include breakpoint(medium) { + display: inline-block; + } + + a { + span { + text-decoration: underline; + } + + .icon-external { + text-decoration: none; + color: #999999; + line-height: 0; + vertical-align: sub; + margin-left: 0.5rem; + } + + &:active, + &:focus, + &:hover { + text-decoration: none; + } + } + } + } + } +} + +// 09. Legislation comments +// ----------------- +.legislation-comments { + + .pull-right { + float: right; + } + + .comment-section { + background: #FAFAFA; + padding: 1rem; + border: 1px solid #DEE0E3; + margin-top: 0.25rem; + margin-bottom: 1rem; + } + + .comment { + margin-bottom: 3rem; + + a { + span { + text-decoration: underline; + } + + .icon-expand, + .icon-comments { + text-decoration: none; + color: #999999; + line-height: 0; + } + + .icon-expand { + margin-left: 0.25rem; + } + + .icon-comments { + margin-right: 0.25rem; + } + + &:active, + &:focus, + &:hover { + text-decoration: none; + } + } + } +} + +// 10. Legislation draft comment +// ----------------- +.legislation-comment { + + .pull-right { + float: right; + } + + .comment-section { + background: #FAFAFA; + padding: 1rem; + border: 1px solid #DEE0E3; + margin-top: 0.25rem; + margin-bottom: 1rem; + } + + .comment { + margin-bottom: 3rem; + + a { + span { + text-decoration: underline; + } + + .icon-expand, + .icon-comments { + text-decoration: none; + color: #999999; + line-height: 0; + } + + .icon-expand { + margin-left: 0.25rem; + } + + .icon-comments { + margin-right: 0.25rem; + } + + &:active, + &:focus, + &:hover { + text-decoration: none; + } + } + } +} diff --git a/app/assets/stylesheets/participation.scss b/app/assets/stylesheets/participation.scss index a5e1d7df2..9af22d4ab 100644 --- a/app/assets/stylesheets/participation.scss +++ b/app/assets/stylesheets/participation.scss @@ -294,7 +294,8 @@ .debate-show, .proposal-show, -.investment-project-show { +.investment-project-show, +.debate-quiz { p { word-wrap: break-word; @@ -492,7 +493,7 @@ } } -.debate, .proposal, .investment-project { +.debate, .proposal, .investment-project, .legislation { margin: $line-height/4 0; .panel { diff --git a/app/controllers/sandbox_controller.rb b/app/controllers/sandbox_controller.rb new file mode 100644 index 000000000..ea5a3e96b --- /dev/null +++ b/app/controllers/sandbox_controller.rb @@ -0,0 +1,27 @@ +class SandboxController < ApplicationController + skip_authorization_check + + def index + @templates = Dir.glob(Rails.root.join('app/views/sandbox/*.html.erb').to_s).map do |filename| + filename = File.basename(filename, File.extname(filename)) + filename unless filename.starts_with?('_') || filename == 'index.html' + end.compact + end + + def show + if params[:template].index('.') # CVE-2014-0130 + render :action => "index" + elsif lookup_context.exists?("sandbox/#{params[:template]}") + if params[:template] == "index" + render :action => "index" + else + render "sandbox/#{params[:template]}" + end + + elsif lookup_context.exists?("sandbox/#{params[:template]}/index") + render "sandbox/#{params[:template]}/index" + else + render :action => "index" + end + end +end diff --git a/app/views/sandbox/index.html.erb b/app/views/sandbox/index.html.erb new file mode 100644 index 000000000..9d6303698 --- /dev/null +++ b/app/views/sandbox/index.html.erb @@ -0,0 +1,13 @@ +
+
+
+

Welcome to sandbox

+ +
    + <% @templates.each do |template| %> +
  • <%= link_to template, "/sandbox/" + template %>
  • + <% end %> +
+
+
+
diff --git a/app/views/sandbox/legislation_allegations.html.erb b/app/views/sandbox/legislation_allegations.html.erb new file mode 100644 index 000000000..d177d50cc --- /dev/null +++ b/app/views/sandbox/legislation_allegations.html.erb @@ -0,0 +1,462 @@ +
+
+
+

+ Licencias urbanísticas, declaraciones responsables y comunicaciones previas +

+
+ +
+ +
+ + + +
+
+ +
+ + +
+
+
+

Estás viendo la revisión

+
+ + ver resumen de cambios +
+ actualizada el 13 nov 2017 +
+ +
+ +
+ +
+
+
Texto
+
+
+

TÍTULO PRELIMINAR. Objeto y definiciones

+

Artículo 1.

+
+

1.Esta Ordenanza tiene por objeto establecer las condiciones generales que deben cumplir los distintos elementos integrados en el denominado mobiliario urbano, tanto en lo que se refiere a su emplazamiento como a las características propias de dichos elementos.

+
+

2.Para determinar las condiciones relativas a la explotación del mobiliario urbano y a los requisitos que, en su caso, hayan de reunir los respectivos titulares, se estará a la normativa específica establecida para los distintos elementos y a las señaladas en el título que autorice su instalación y funcionamiento.

+

3.El mobiliario urbano deberá cumplir los criterios estéticos y de diseño para las distintas zonas de Madrid, aprobados por el titular del Área de Gobierno competente en materia de mobiliario urbano. En aquellos casos en los que la normativa aplicable así lo exija, deberá obtenerse dictamen de la comisión competente en materia de protección del patrimonio histórico y artístico.

+

(redacción dada por la Ordenanza de 30 de marzo 2011 de Adaptación al ámbito de la Ciudad de Madrid de las previsiones contenidas en la normativa estatal y autonómica de transposición de la Directiva 2006/123/CE)

+ +

Artículo 2.

+

1. A los efectos de esta Ordenanza se entiende por mobiliario urbano el conjunto de instalaciones o elementos que ocupan un espacio público, y cuya finalidad sea la de atender una necesidad social o prestar un determinado servicio al vecindario.

+
+

2.En el concepto indicado estarán incluidas tanto las instalaciones y elementos de titularidad pública, explotados directamente o por concesión: bancos, bolardos, marquesinas, papeleras, etcétera, como los colocados por particulares, previa autorización municipal, tales como quioscos o puestos fijos, de temporada u ocasionales.

+
+

(apartado 2 del art. 2, redacción dada por la Ordenanza de 30 de marzo 2011 de Adaptación al ámbito de la Ciudad de Madrid de las previsiones contenidas en la normativa estatal y autonómica de transposición de la Directiva 2006/123/ CE)

+ +

Artículo 3.

+

Constituirá criterio general para la implantación de mobiliario urbano la armonización de las finalidades asignadas al mismo con las funciones generales de los espacios públicos, la coordinación de los distintos elementos procurando, cuando fuera posible, la polivalencia de cada uno de ellos para evitar la ocupación intensiva de aquellos espacios y la adecuación, tanto por su emplazamiento como por su diseño, al entono urbano en que se localicen.

+

TÍTULO I. DE LOS EMPLAZAMIENTOS DE MOBILIARIO URBANO

+ +

Artículo 4.

+

Cuando se trate de mobiliario urbano de titularidad pública, el número, localización y características de sus emplazamientos estará determinado en el correspondiente acuerdo de implantación o bases de concesión, si fuera municipal, y en el de autorización, si fuese promovido por otras entidades.

+ +

Artículo 5.

+ +

Los interesados tendrán reconocidos específicamente, además de los establecidos con carácter general en otras normas, los siguientes derechos: +

1. Iniciar inmediatamente el ejercicio de la actividad cuando esté sometida a declaración responsable, o una vez obtenida la licencia de primera ocupación y funcionamiento.

+

2. Obtener la licencia de actividad y funcionamiento en el plazo establecido en cada caso, sin perjuicio de los efectos establecidos en la legislación aplicable en el ámbito del silencio administrativo.

+

3. No presentar documentación que obre en poder de los servicios municipales

+

4. Presentar quejas, reclamaciones y sugerencias sobre el funcionamiento de los servicios municipales y de las entidades colaboradoras urbanísticas.

+ +

Artículo 6.

+
+

1. Durante la realización de las obras o la implantación de la actividad y previamente al acto de comprobación, no se considerarán modificación de la licencia o de la declaración responsable las alteraciones que se hayan producido en el edificio, local o sus instalaciones cuando las mismas se ajusten a la normativa que las regula, salvo que afecten a las condiciones de volumen y forma de los edificios, a la posición y ocupación del edificio en la parcela, a la edificabilidad o superficie del local, al número de locales. Si no se ajustasen se aplicarán los mecanismos de restablecimiento de la legalidad urbanística.

+
+ +

Se considerará modificación el cambio de actividad, salvo que la nueva actividad o la inicial con la incorporación de alguna complementaria de ella, tenga la misma consideración y exigencias urbanísticas, ambientales, de seguridad y salubridad. Las variaciones producidas se relacionarán en el acta de comprobación, sin necesidad de tramitar licencia o declaración aparte, quedando legalizadas con la concesión de la licencia de primera ocupación y funcionamiento o el acto de comprobación posterior. Cuando las variaciones se hayan concretado en obras que requieran proyecto de obras de edificación de acuerdo con el artículo 2.2 de la Ley de Ordenación de la Edificación se incorporará el correspondiente proyecto modificado.

+

2. Durante el ejercicio de las actividades con licencia o declaración responsable, y con las mismas salvedades indicadas en el punto 1, no se considerará modificación de la licencia o declaración las variaciones que se hayan producido en la actividad, el local o sus instalaciones cuando no alteren las condiciones de repercusión ambiental, seguridad o salubridad por debajo de las exigencias técnicas establecidas para las mismas por la normativa vigente. Tampoco se considerará modificación el cambio de actividad o la incorporación de alguna complementaria a la misma cuando esta tenga la misma consideración y exigencias urbanísticas, ambientales, de seguridad y salubridad que la primera.

+

Las obras que han dado lugar a estas variaciones se legalizarán a través de licencia o declaración responsable, dependiendo de la entidad de las mismas. La licencia que se conceda o la declaración se limitarán a recoger el contenido de la modificación, haciendo referencia a la licencia del establecimiento.

+

3. En el caso de actividades de espectáculos públicos y recreativas también se considerará modificación de licenciao declaración responsable el cambio de actividad de las indicadas en el Catálogo, así como el incremento del aforo.

+

4. Cuando la modificación sea requerida de oficio, el requerimiento indicará las alteraciones existentes, motivando la necesidad de la modificación de la licencia o de la declaración responsable.

+

5. Durante la ejecución de las obras autorizadas no precisarán modificación de licencia las variaciones en el número de plazas de aparcamiento que no supongan disminución de la dotación obligatoria de servicio del edificio, sin perjuicio de su constancia documentada en el expediente.

+
+
+ +
+
+
+ Comentarios +
+
+ +
+ Comentarios +
+ +
+
+ +
34 comentarios
+ +
+
+
+
+

Mi comentario va encaminado a que no nos equivoquemos al pensar que esta es una opci...

+
+
+
+ + +
+
+
Sin votos
+ + +
+
+
+ +
+
+

Mi comentario va encaminado a que no nos equivoquemos al pensar que esta es una opci...

+
+
+
+ + +
+
+
Sin votos
+ + +
+
+
+ +
+
+

Mi comentario va encaminado a que no nos equivoquemos al pensar que esta es una opci...

+
+
+
+ + +
+
+
Sin votos
+ + +
+
+
+
+ +
+ +
+
+ +
34 comentarios
+ +
+
+
+
+

Mi comentario va encaminado a que no nos equivoquemos al pensar que esta es una opci...

+
+
+
+ + +
+
+
Sin votos
+ + +
+
+
+ +
+
+

Mi comentario va encaminado a que no nos equivoquemos al pensar que esta es una opci...

+
+
+
+ + +
+
+
Sin votos
+ + +
+
+
+ +
+
+

Mi comentario va encaminado a que no nos equivoquemos al pensar que esta es una opci...

+
+
+
+ + +
+
+
Sin votos
+ + +
+
+
+
+ + + +
+ +
+
+ +
34 comentarios
+ +
+
+
+
+

En la actualidad, el número de autobuses de la EMT suman 1.900 de los cuales 740 funcionan con gas natural (el 42%), con los 170 que se van a adquirir en 2016, el cómputo sube a 900, lo que significa casi el 50% del total. Con tecnología híbrida existen 23 y se prevé comprar 30 más, lo que supone 53 vehículos, y hay 20 minibuses eléctricos puros. Por último, el 80% de los autobuses de diésel están catalizados a niveles euro4 y euro5 (470), “con lo que podríamos asegurar que el 78% de nuestra flota es verde.

+

En la actualidad, el número de autobuses de la EMT suman 1.900 de los cuales 740 funcionan con gas natural (el 42%), con los 170 que se van a adquirir en 2016, el cómputo sube a 900, lo que significa casi el 50% del total. Con tecnología híbrida existen 23 y se prevé comprar 30 más, lo que supone 53 vehículos, y hay 20 minibuses eléctricos puros. Por último, el 80% de los autobuses de diésel están catalizados a niveles euro4 y euro5 (470), “con lo que podríamos asegurar que el 78% de nuestra flota es verde.

+
+
+
+ +
+
+
Sin votos
+ + +
+
+
+ +
+
+

Mi comentario va encaminado a que no nos equivoquemos al pensar que esta es una opci...

+
+
+
+ + +
+
+
Sin votos
+ + +
+
+
+ +
+
+

Mi comentario va encaminado a que no nos equivoquemos al pensar que esta es una opci...

+
+
+
+ + +
+
+
Sin votos
+ + +
+
+
+
+ +
+ +
+ +
+
+
diff --git a/app/views/sandbox/legislation_debate.html.erb b/app/views/sandbox/legislation_debate.html.erb new file mode 100644 index 000000000..f6852ed45 --- /dev/null +++ b/app/views/sandbox/legislation_debate.html.erb @@ -0,0 +1,158 @@ +
+
+
+

Colabora en la elaboración de la normativa sobre

+

+ Licencias urbanísticas, declaraciones responsables y comunicaciones previas +

+
+ +
+ +
+
+

En qué consiste

+

Se va a modificar la regulación del procedimiento para la autorización de obras y la apertura de locales comerciales o empresariales para simplificar y agilizar trámites.

+
+
+

A quién va dirigido

+
    +
  • Ciudadanos con vivienda en propiedad
  • +
  • Profesionales de la construcción y reformas
  • +
  • Empresarios con locales comerciales
  • +
+
+
+

Cómo puedes participar

+
    +
  • Participa en el debate previo para identificar los problemas a solucionar, la necesidad de esta normativa, sus objetivos y posibles soluciones alternativas.
  • +
  • Después del debate el Ayuntamiento presentará un borrador del texto al cual podrás realizar comentarios y alegaciones.
  • +
+
+
+ + +
+ +
+ + +
+
+
+
+ + + + + + + + + + + +
+
+ +
+
Realiza tus aportaciones al debate previo participando en los siguientes temas.
+
+ +
+
+
diff --git a/app/views/sandbox/legislation_debate_quiz.html.erb b/app/views/sandbox/legislation_debate_quiz.html.erb new file mode 100644 index 000000000..d4411b3bd --- /dev/null +++ b/app/views/sandbox/legislation_debate_quiz.html.erb @@ -0,0 +1,57 @@ +
+ +
+
+

¿Considera necesario realizar una nueva regulación para facilitar y simplificar las obras en viviendas, o la modificación y apertura de locales comerciales o empresariales?

+
+
+ + + +
+
+
+ +
+ +
+ +
+ +
+
+ COMENTARIOS +
+
diff --git a/app/views/sandbox/legislation_draft.html.erb b/app/views/sandbox/legislation_draft.html.erb new file mode 100644 index 000000000..7361bd54e --- /dev/null +++ b/app/views/sandbox/legislation_draft.html.erb @@ -0,0 +1,93 @@ +
+
+
+

Colabora en la elaboración de la normativa sobre

+

+ Licencias urbanísticas, declaraciones responsables y comunicaciones previas +

+
+ +
+ +
+
+

En qué consiste

+

Se va a modificar la regulación del procedimiento para la autorización de obras y la apertura de locales comerciales o empresariales para simplificar y agilizar trámites.

+
+
+

A quién va dirigido

+
    +
  • Ciudadanos con vivienda en propiedad
  • +
  • Profesionales de la construcción y reformas
  • +
  • Empresarios con locales comerciales
  • +
+
+
+

Cómo puedes participar

+
    +
  • Participa en el debate previo para identificar los problemas a solucionar, la necesidad de esta normativa, sus objetivos y posibles soluciones alternativas.
  • +
  • Después del debate el Ayuntamiento presentará un borrador del texto al cual podrás realizar comentarios y alegaciones.
  • +
+
+
+ + +
+ +
+ + +
+
+
+ +
+

Esta fase del proceso todavía no está abierta

+

Suscríbete al proceso para recibir un aviso en el momento en que se abra.

+
+ +
+ +
+ +
+
+
+
diff --git a/app/views/sandbox/legislation_draft_changes.html.erb b/app/views/sandbox/legislation_draft_changes.html.erb new file mode 100644 index 000000000..d871e842d --- /dev/null +++ b/app/views/sandbox/legislation_draft_changes.html.erb @@ -0,0 +1,83 @@ +
+
+
+

+ Licencias urbanísticas, declaraciones responsables y comunicaciones previas +

+
+ +
+ +
+ + + +
+
+ +
+ + +
+
+
+

Estás viendo la revisión

+
+ +
+ actualizada el 13 nov 2017 +
+ +
+ +
+
+

El 12 nov 2016 se publica un nuevo borrador de la normativa sobre Licencias urbanísticas, que incorpora las aportaciones de la ciudadanía realizadas a través de la web de decide.madrid.es. A continuación se detallan los principales cambios que se han introducido en el texto:

+ +
    +
  • Se detalla el ámbito de actuación ver apartado
  • +
  • Se reescribe la introducción al Capítulo I para incorporar sugerencias ciudadanas ver apartado
  • +
  • Se detalla el ámbito de actuación ver apartado
  • +
  • Se reescribe la introducción al Capítulo I para incorporar sugerencias ciudadanas ver apartado
  • +
  • Se detalla el ámbito de actuación ver apartado
  • +
  • Se reescribe la introducción al Capítulo I para incorporar sugerencias ciudadanas ver apartado
  • +
+
+
+
diff --git a/app/views/sandbox/legislation_draft_comment.html.erb b/app/views/sandbox/legislation_draft_comment.html.erb new file mode 100644 index 000000000..c0008d324 --- /dev/null +++ b/app/views/sandbox/legislation_draft_comment.html.erb @@ -0,0 +1,93 @@ +
+
+
+

+ Licencias urbanísticas, declaraciones responsables y comunicaciones previas +

+
+ +
+ +
+ + + +
+
+ +
+ + +
+
+
+

Comentarios de la versión

+
+ +
+ actualizada el 13 nov 2017 +
+ +
+ +
+
+
+ Comentarios sobre +
+
+
+ 1. Esta ordenanza tiene por objeto regular los medios de intervención administrativa para el control de la legalidad de las actuaciones urbanísticas. +
+ +
+
+ +
+
+ COMENTARIOS +
+
+ +
+
+
+
diff --git a/app/views/sandbox/legislation_draft_comments.html.erb b/app/views/sandbox/legislation_draft_comments.html.erb new file mode 100644 index 000000000..1a334fd12 --- /dev/null +++ b/app/views/sandbox/legislation_draft_comments.html.erb @@ -0,0 +1,108 @@ +
+
+
+

+ Licencias urbanísticas, declaraciones responsables y comunicaciones previas +

+
+ +
+ +
+ + + +
+
+ +
+ + +
+
+
+

Comentarios de la versión

+
+ +
+ actualizada el 13 nov 2017 +
+ +
+ +
+
+
+ Comentarios sobre + Ver en contexto +
+ 1. Esta ordenanza tiene por objeto regular los medios de intervención administrativa para el control de la legalidad de las actuaciones urbanísticas. +
+ 34 comentarios +
+ +
+ Comentarios sobre + Ver en contexto +
+ 1. Esta ordenanza tiene por objeto regular los medios de intervención administrativa para el control de la legalidad de las actuaciones urbanísticas. +
+ 34 comentarios +
+ +
+ Comentarios sobre + Ver en contexto +
+ 1. Esta ordenanza tiene por objeto regular los medios de intervención administrativa para el control de la legalidad de las actuaciones urbanísticas. +
+ 34 comentarios +
+ +
+ Comentarios sobre + Ver en contexto +
+ 1. Esta ordenanza tiene por objeto regular los medios de intervención administrativa para el control de la legalidad de las actuaciones urbanísticas. +
+ 34 comentarios +
+
+
+
diff --git a/app/views/sandbox/legislation_home.html.erb b/app/views/sandbox/legislation_home.html.erb new file mode 100644 index 000000000..c054788b7 --- /dev/null +++ b/app/views/sandbox/legislation_home.html.erb @@ -0,0 +1,67 @@ +
+
+
+

+ PROCESOS DESTACADOS +

+
+
+
+ +
+
+
    +
  • Procesos activos

  • +
  • Próximamente

  • +
  • Terminados

  • +
+
+ +
+
+ +
+
+
+
+

Licencias urbanísticas, declaraciones responsables y comunicaciones previas

+

Se va a modificar la regulación del procedimiento para la autorización de obras y la apertura de locales comerciales o empresariales para simplificar y agilizar trámites

+
+
+ + +
+ +
+
+

Fechas clave:

+
+
+ +
+
+
Debate previo
+

15 nov 2016 - 15 dic 2016

+
+
+
Publicación borrador
+

1 dic 2016

+
+
+
Alegaciones
+

1 dic 2016 - 15 dic 2016

+
+
+
Publicación resultados
+

15 feb 2017

+
+
+
+ +
+
+
diff --git a/app/views/sandbox/test_sandbox.html.erb b/app/views/sandbox/test_sandbox.html.erb new file mode 100644 index 000000000..5d61aab9d --- /dev/null +++ b/app/views/sandbox/test_sandbox.html.erb @@ -0,0 +1,61 @@ + diff --git a/config/routes.rb b/config/routes.rb index 76f7857ac..b62cabc7a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,5 +1,10 @@ Rails.application.routes.draw do + if Rails.env.development? || Rails.env.staging? + get '/sandbox' => 'sandbox#index' + get '/sandbox/*template' => 'sandbox#show' + end + devise_for :users, controllers: { registrations: 'users/registrations', sessions: 'users/sessions',