decidim-core 0.0.1.alpha2 → 0.0.1.alpha3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +11 -6
  3. data/app/assets/config/decidim_core_manifest.js +1 -0
  4. data/app/assets/images/decidim/badge-ajuntament-footer.png +0 -0
  5. data/app/assets/images/decidim/badge-ajuntament-header.svg +60 -0
  6. data/app/assets/images/decidim/cc-badge.png +0 -0
  7. data/app/assets/images/decidim/hero-home.jpg +0 -0
  8. data/app/assets/images/decidim/icons.svg +1 -0
  9. data/app/assets/javascripts/decidim.js +12 -1
  10. data/app/assets/stylesheets/{decidim.css → decidim.scss} +2 -1
  11. data/app/assets/stylesheets/decidim/application.sass +7 -0
  12. data/app/assets/stylesheets/decidim/layouts/_home.scss +244 -0
  13. data/app/assets/stylesheets/decidim/layouts/_user.scss +24 -0
  14. data/app/assets/stylesheets/decidim/layouts/_view.scss +22 -0
  15. data/app/assets/stylesheets/decidim/modules/_address.scss +26 -0
  16. data/app/assets/stylesheets/decidim/modules/_author-avatar.scss +119 -0
  17. data/app/assets/stylesheets/decidim/modules/_buttons.scss +120 -0
  18. data/app/assets/stylesheets/decidim/modules/_callout.scss +25 -0
  19. data/app/assets/stylesheets/decidim/modules/_card-grid.scss +22 -0
  20. data/app/assets/stylesheets/decidim/modules/_cards.scss +520 -0
  21. data/app/assets/stylesheets/decidim/modules/_comments.scss +119 -0
  22. data/app/assets/stylesheets/decidim/modules/_defintion-data.scss +54 -0
  23. data/app/assets/stylesheets/decidim/modules/_extra.scss +43 -0
  24. data/app/assets/stylesheets/decidim/modules/_filters.scss +96 -0
  25. data/app/assets/stylesheets/decidim/modules/_flag.scss +9 -0
  26. data/app/assets/stylesheets/decidim/modules/_footer.scss +90 -0
  27. data/app/assets/stylesheets/decidim/modules/_forms.scss +30 -0
  28. data/app/assets/stylesheets/decidim/modules/_help.scss +14 -0
  29. data/app/assets/stylesheets/decidim/modules/_icons.scss +32 -0
  30. data/app/assets/stylesheets/decidim/modules/_layout.scss +58 -0
  31. data/app/assets/stylesheets/decidim/modules/_list-docs.scss +30 -0
  32. data/app/assets/stylesheets/decidim/modules/_main-container.scss +70 -0
  33. data/app/assets/stylesheets/decidim/modules/_map.scss +72 -0
  34. data/app/assets/stylesheets/decidim/modules/_navbar.scss +258 -0
  35. data/app/assets/stylesheets/decidim/modules/_opinion-toggle.scss +30 -0
  36. data/app/assets/stylesheets/decidim/modules/_order-by.scss +66 -0
  37. data/app/assets/stylesheets/decidim/modules/_owl-carousel.scss +72 -0
  38. data/app/assets/stylesheets/decidim/modules/_phase-nav.scss +177 -0
  39. data/app/assets/stylesheets/decidim/modules/_popularity.scss +74 -0
  40. data/app/assets/stylesheets/decidim/modules/_process-header.scss +125 -0
  41. data/app/assets/stylesheets/decidim/modules/_process-info.scss +44 -0
  42. data/app/assets/stylesheets/decidim/modules/_process-nav.scss +99 -0
  43. data/app/assets/stylesheets/decidim/modules/_reference.scss +6 -0
  44. data/app/assets/stylesheets/decidim/modules/_reveal.scss +20 -0
  45. data/app/assets/stylesheets/decidim/modules/_share.scss +28 -0
  46. data/app/assets/stylesheets/decidim/modules/_signup.scss +39 -0
  47. data/app/assets/stylesheets/decidim/modules/_static-pages.scss +46 -0
  48. data/app/assets/stylesheets/decidim/modules/_status-labels.scss +14 -0
  49. data/app/assets/stylesheets/decidim/modules/_tags.scss +29 -0
  50. data/app/assets/stylesheets/decidim/modules/_timeline.scss +189 -0
  51. data/app/assets/stylesheets/decidim/modules/_title-action.scss +28 -0
  52. data/app/assets/stylesheets/decidim/modules/_typography.scss +116 -0
  53. data/app/assets/stylesheets/decidim/modules/_user-form.scss +14 -0
  54. data/app/assets/stylesheets/decidim/modules/_video.scss +18 -0
  55. data/app/assets/stylesheets/decidim/utils/_fontface.scss +1 -0
  56. data/app/assets/stylesheets/decidim/utils/_helpers.sass +21 -0
  57. data/app/assets/stylesheets/decidim/utils/_keyframes.sass +13 -0
  58. data/app/assets/stylesheets/decidim/utils/_mixins.sass +33 -0
  59. data/app/assets/stylesheets/decidim/utils/_settings.scss +570 -0
  60. data/app/assets/stylesheets/decidim/utils/_toggle-expand.scss +8 -0
  61. data/app/assets/stylesheets/decidim/utils/_variables.scss +25 -0
  62. data/app/controllers/concerns/decidim/needs_organization.rb +31 -0
  63. data/app/controllers/decidim/application_controller.rb +1 -0
  64. data/app/controllers/decidim/devise/confirmations_controller.rb +10 -0
  65. data/app/controllers/decidim/devise/invitations_controller.rb +20 -0
  66. data/app/controllers/decidim/devise/passwords_controller.rb +10 -0
  67. data/app/controllers/decidim/devise/registrations_controller.rb +19 -0
  68. data/app/controllers/decidim/devise/sessions_controller.rb +10 -0
  69. data/app/helpers/decidim/application_helper.rb +3 -0
  70. data/app/helpers/decidim/layout_helper.rb +27 -0
  71. data/app/helpers/decidim/translations_helper.rb +16 -0
  72. data/app/mailers/decidim/decidim_devise_mailer.rb +11 -0
  73. data/app/middleware/decidim/current_organization.rb +28 -0
  74. data/app/models/decidim/organization.rb +9 -0
  75. data/app/models/decidim/participatory_process.rb +14 -0
  76. data/app/models/decidim/user.rb +28 -4
  77. data/app/views/decidim/devise/confirmations/new.html.erb +15 -0
  78. data/app/views/decidim/devise/invitations/edit.html.erb +14 -0
  79. data/app/views/decidim/devise/passwords/edit.html.erb +20 -0
  80. data/app/views/decidim/devise/passwords/new.html.erb +15 -0
  81. data/app/views/decidim/devise/registrations/edit.html.erb +35 -0
  82. data/app/views/decidim/devise/registrations/new.html.erb +23 -0
  83. data/app/views/decidim/devise/sessions/new.html.erb +23 -0
  84. data/app/views/decidim/devise/shared/_links.html.erb +25 -0
  85. data/app/views/decidim/home/show.html.erb +16 -4
  86. data/app/views/devise/mailer/confirmation_instructions.html.erb +4 -0
  87. data/app/views/devise/mailer/organization_admin_invitation_instructions.html.erb +10 -0
  88. data/app/views/devise/mailer/organization_admin_invitation_instructions.text.erb +11 -0
  89. data/app/views/devise/mailer/password_change.html.erb +3 -0
  90. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  91. data/app/views/layouts/decidim/_footer.html.erb +28 -2
  92. data/app/views/layouts/decidim/_header.html.erb +59 -2
  93. data/config/i18n-tasks.yml +120 -0
  94. data/config/initializers/devise.rb +58 -8
  95. data/config/locales/en.yml +35 -0
  96. data/config/routes.rb +12 -1
  97. data/db/migrate/20160919104837_create_decidim_organizations.rb +13 -0
  98. data/db/migrate/20160920140207_devise_invitable_add_to_decidim_users.rb +23 -0
  99. data/db/migrate/20160920141039_user_belongs_to_organization.rb +5 -0
  100. data/db/migrate/20160920141151_user_has_roles.rb +5 -0
  101. data/db/migrate/20161005130108_add_participatory_processes.rb +17 -0
  102. data/db/migrate/20161005153007_add_description_to_organizations.rb +9 -0
  103. data/db/migrate/20161006085629_add_confirmable_to_devise.rb +14 -0
  104. data/db/seeds.rb +35 -0
  105. data/lib/decidim/core.rb +0 -1
  106. data/lib/decidim/core/engine.rb +30 -0
  107. data/lib/decidim/core/version.rb +1 -1
  108. data/lib/decidim/devise_failure_app.rb +36 -0
  109. data/lib/decidim/form_builder.rb +38 -0
  110. data/lib/decidim/translatable_attributes.rb +86 -0
  111. data/lib/devise/models/decidim_validatable.rb +67 -0
  112. data/lib/tasks/factory_girl.rake +16 -0
  113. metadata +254 -9
  114. data/config/locales/devise.en.yml +0 -62
  115. data/lib/decidim/testing_support/common_rake.rb +0 -13
  116. data/lib/generators/decidim/dummy_generator.rb +0 -58
  117. data/lib/generators/decidim/install_generator.rb +0 -76
  118. data/lib/generators/decidim/templates/initializer.rb +0 -4
@@ -0,0 +1,14 @@
1
+ .help{
2
+ vertical-align: -2px;
3
+ .icon{
4
+ width: 14px;
5
+ height: 14px;
6
+ fill: $white;
7
+ background: lighten($muted, 20);
8
+ border-radius: 50%;
9
+ padding: 2px;
10
+ &:hover{
11
+ background: $anchor-color;
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,32 @@
1
+ .icon{
2
+ width: 14px;
3
+ height: 14px;
4
+ fill: currentColor;
5
+ }
6
+
7
+ .icon--small{
8
+ width: 10px;
9
+ height: 10px;
10
+ }
11
+
12
+ .icon--action{
13
+ fill: rgba(black, .2);
14
+ }
15
+
16
+ .icon--action:hover,
17
+ a:hover .icon--action{
18
+ fill: currentColor;
19
+ }
20
+
21
+ .icon--after{
22
+ margin-left: .3rem;
23
+ }
24
+ .icon--before{
25
+ margin-right: .3rem;
26
+ }
27
+
28
+ .icon--share{
29
+ margin-bottom: -2px;
30
+ width: 12px;
31
+ height: 12px;
32
+ }
@@ -0,0 +1,58 @@
1
+ .wrapper{
2
+ padding: 3rem 1rem;
3
+ @include breakpoint(medium){
4
+ padding-top: 5rem;
5
+ padding-left: 1.5rem;
6
+ padding-right: 1.5rem;
7
+ }
8
+ @include breakpoint(large){
9
+ padding-left: 4rem;
10
+ padding-right: 4rem;
11
+ }
12
+ }
13
+
14
+ .wrapper--inner{
15
+ background: $light-gray-dark;
16
+ padding-top: 1rem;
17
+ }
18
+
19
+ //Flexbox sticky footer
20
+ body{
21
+ display: flex;
22
+ flex-direction: column;
23
+ height: auto;
24
+ min-height: 100%;
25
+ @include breakpoint(smallmedium down){
26
+ background-color: $dark-gray;
27
+ }
28
+ }
29
+
30
+ .footer-separator{
31
+ flex-grow: 1;
32
+ }
33
+
34
+ //fixes for off-canvas wrappers
35
+ .off-canvas-wrapper,
36
+ .off-canvas-wrapper-inner,
37
+ .off-canvas-content{
38
+ display: flex;
39
+ flex-direction: column;
40
+ flex-grow: 1;
41
+ }
42
+
43
+ .off-canvas{
44
+ background-color: $dark-gray;
45
+ .close-button{
46
+ color: $light-gray;
47
+ padding: .2rem .5rem;
48
+ margin-right: -.5rem;
49
+ }
50
+ }
51
+
52
+ //Sections
53
+ .section{
54
+ margin-bottom: 3rem;
55
+ @include breakpoint(large){
56
+ margin-bottom: 5rem;
57
+ }
58
+ }
@@ -0,0 +1,30 @@
1
+ .list-docs{
2
+ list-style: none;
3
+ margin: 0;
4
+ padding: 0;
5
+ }
6
+
7
+ .list-docs__icon{
8
+ color: $muted;
9
+ margin-right: 3px;
10
+ }
11
+
12
+ .list-check{
13
+ list-style: none;
14
+ margin: 0;
15
+ padding: 0;
16
+ > li{
17
+ margin-bottom: 1rem;
18
+ }
19
+ }
20
+
21
+ .list-check__icon{
22
+ vertical-align: -.05rem;
23
+ margin-right: .2rem;
24
+ .list-check__ok &{
25
+ color: $success;
26
+ }
27
+ .list-check__ko &{
28
+ color: $alert;
29
+ }
30
+ }
@@ -0,0 +1,70 @@
1
+ /* Variables */
2
+
3
+ $container-bg: $white;
4
+ $container-border: $border;
5
+ $container-shadow: 0 2px 7px rgba(black,.1);
6
+ $container-padding-x: 0.5rem;
7
+ $container-padding-y: 1rem;
8
+ $container-padding-2x: 2rem;
9
+ $container-padding-2y: 2rem;
10
+
11
+ /* Main container */
12
+
13
+ .main-container{
14
+ background: $container-bg;
15
+ border: $container-border;
16
+
17
+ }
18
+
19
+ .main-container__content{
20
+ padding: $container-padding-y $container-padding-x;
21
+ @include breakpoint(medium){
22
+ padding: $container-padding-2y $container-padding-2x;
23
+ }
24
+ }
25
+
26
+ /* Main container side panel */
27
+
28
+ .main-container--side-panel{
29
+ @include breakpoint(medium){
30
+ display: flex;
31
+ }
32
+ }
33
+
34
+ .side-panel{
35
+ background-color: $light-gray-dark;
36
+ min-height: 100%;
37
+ border-bottom: $border;
38
+ @include breakpoint(medium){
39
+ border-bottom: 0;
40
+ border-right: $border;
41
+ }
42
+ }
43
+
44
+ .side-panel__content{
45
+
46
+ }
47
+
48
+ .side-panel__tabs{
49
+ border: none;
50
+ .tabs-title{
51
+ border-bottom: $border;
52
+ &:last-of-type{
53
+ @include breakpoint(medium){
54
+ margin-bottom: 4rem;
55
+ }
56
+ }
57
+ >[role=tab],
58
+ >a{
59
+ color: $body-font-color;
60
+ &:hover{
61
+ color: $anchor-color;
62
+ }
63
+ }
64
+ &.is-active >[role=tab],
65
+ &.is-active >a{
66
+ color: $anchor-color;
67
+ box-shadow: inset 4px 0 0 $primary;
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,72 @@
1
+ .google-map {
2
+ width: 100%;
3
+ height: 200px;
4
+ background-color: $medium-gray;
5
+ margin-bottom: 2rem;
6
+ @include breakpoint(mediumlarge){
7
+ height: 450px;
8
+ }
9
+ }
10
+
11
+ .map-info{
12
+ background: $primary;
13
+ border-radius: $global-radius;
14
+ > div:first-child{ //Map styles container
15
+ > div:first-child{ //Triangle
16
+ border-top-color: $primary !important;
17
+ }
18
+ > div:nth-child(2){
19
+ background-color: transparent !important;
20
+ border-radius: $global-radius !important;
21
+ }
22
+ }
23
+ *{
24
+ box-shadow: none !important;
25
+ }
26
+ }
27
+
28
+ .map-info__content{
29
+ padding-top: 1rem;
30
+ padding-left: 1.2rem;
31
+ }
32
+
33
+ .map__date-adress{
34
+ @include breakpoint(medium){
35
+ display: flex;
36
+ }
37
+ margin-bottom: 1rem;
38
+ .card__datetime{
39
+ float: none;
40
+ border-color: $primary;
41
+ display: flex;
42
+ flex-direction: column;
43
+ justify-content: center;
44
+ margin-right: 0;
45
+ margin-bottom: 1rem;
46
+ padding: .5em 1em;
47
+ @include breakpoint(medium){
48
+ margin-right: .5rem;
49
+ margin-bottom: 0;
50
+ }
51
+ }
52
+ .address{
53
+ flex: 1;
54
+ margin-bottom: 0;
55
+ }
56
+ .address__icon{
57
+ display: none;
58
+ @include breakpoint(medium){
59
+ display: block;
60
+ }
61
+ }
62
+ .card__extra{
63
+ padding: 0 1rem;
64
+ }
65
+ }
66
+
67
+ .map-info__button{
68
+ text-align: center;
69
+ .button{
70
+ min-width: 12em;
71
+ }
72
+ }
@@ -0,0 +1,258 @@
1
+ /* Variables */
2
+
3
+ $navbar-bg: $dark-gray;
4
+ $navbar-bg-hover: rgba(white,.02);
5
+ $navbar-color: rgba(white,.5);
6
+ $navbar-color-hover: $white;
7
+ $navbar-active-color: $white;
8
+ $navbar-active-bg: $navbar-bg-hover;
9
+ $navbar-active-shadow-small: inset 4px 0 0 0 $primary;
10
+ $navbar-active-shadow-medium: inset 0 4px 0 0 $primary;
11
+
12
+ /* Navigation */
13
+
14
+ .navbar{
15
+ background: $navbar-bg;
16
+ }
17
+
18
+ /* Title bar */
19
+
20
+ .title-bar{
21
+ position: relative;
22
+ @include breakpoint(smallmedium down){
23
+ border-top: 2.125rem solid $dark-gray;
24
+ }
25
+ }
26
+
27
+ .logo-cityhall{
28
+ position: absolute;
29
+ z-index: 1;
30
+ right: 0;
31
+ top: 0;
32
+ margin-top: -1.95rem;
33
+ text-align: right;
34
+ img{
35
+ width: auto;
36
+ height: 22px !important;
37
+ }
38
+
39
+ @include breakpoint(medium){
40
+ top: 50%;
41
+ margin-top: -19px;
42
+ img{
43
+ height: 38px !important;
44
+ }
45
+ }
46
+ }
47
+
48
+
49
+ /* Top bar */
50
+ .topbar{
51
+ display: flex;
52
+ align-items: center;
53
+ justify-content: flex-end;
54
+ }
55
+
56
+ .logo-wrapper{
57
+ display: inline-block;
58
+ line-height: 0;
59
+ flex-grow: 1;
60
+ a{
61
+ display: inline-block;
62
+ }
63
+ img{
64
+ display: block;
65
+ }
66
+ }
67
+
68
+ /* Dropmenus in topbar */
69
+ .topbar__dropmenu{
70
+ display: inline-block;
71
+ vertical-align: middle;
72
+ padding-top: 0;
73
+ margin-left: 2rem;
74
+ .dropdown > li > a{
75
+ padding-left: 0;
76
+ }
77
+ .dropdown{
78
+ display: inline-block;
79
+ vertical-align: middle;
80
+ }
81
+ .is-dropdown-submenu{
82
+ text-align: left;
83
+ padding-left: .3rem;
84
+ background-color: $white;
85
+ border: 1px solid $light-gray;
86
+ box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
87
+ min-width: 150px;
88
+ a{
89
+ color: $body-font-color;
90
+ padding: .5rem;
91
+ }
92
+ a:hover{
93
+ color: lighten($body-font-color, 20);
94
+ }
95
+ }
96
+ }
97
+
98
+ //Foundation overwrites
99
+ .topbar__dropmenu > ul > li > a{
100
+ color: $medium-gray;
101
+ &:after{
102
+ margin-top: -1px !important;
103
+ border-top-color: $medium-gray !important;
104
+ }
105
+ }
106
+
107
+
108
+
109
+ .language-choose{
110
+ @include breakpoint(smallmedium down){
111
+ font-size: .8rem;
112
+ position: absolute;
113
+ top: -2.2rem;
114
+ left: .5rem;
115
+ margin-left: 0;
116
+ .dropdown.menu > li.is-dropdown-submenu-parent > a::after{
117
+ border-width: 3px;
118
+ right: 10px;
119
+ margin-top: 0;
120
+ }
121
+ }
122
+ }
123
+
124
+
125
+ .topbar__user{
126
+ display: inline-block;
127
+ padding-right: 2.5rem;
128
+ margin-left: 2rem;
129
+ @media (min-width: (1300 / 16) + em){
130
+ padding-right: 0;
131
+ }
132
+ }
133
+
134
+ .topbar__user__logged{
135
+ text-align: right;
136
+ padding-right: 2.5rem;
137
+ display: none;
138
+ @include breakpoint(medium){
139
+ display: block;
140
+ }
141
+ @media (min-width: (1300 / 16) + em){
142
+ padding-right: 0;
143
+ }
144
+ }
145
+
146
+
147
+ .topbar__notifications{
148
+ margin-right: .5rem;
149
+ vertical-align: -4px;
150
+ .icon{
151
+ fill: $white;
152
+ opacity: .3;
153
+ }
154
+ &.is-active .icon{
155
+ fill: $warning;
156
+ opacity: 1;
157
+ }
158
+ }
159
+
160
+ .topbar__user__login{
161
+ text-align: right;
162
+ line-height: 1.2;
163
+ a{
164
+ color: $medium-gray;
165
+ font-weight: 600;
166
+ &:hover{
167
+ color: $anchor-color;
168
+ }
169
+ }
170
+ a:first-of-type:after{
171
+ content: "";
172
+ margin-left: .5rem;
173
+ margin-right: .5rem;
174
+ display: inline-block;
175
+ width: 1px;
176
+ height: 2px;
177
+ border-left: $border;
178
+ vertical-align: middle;
179
+ }
180
+ }
181
+
182
+
183
+ /* Menu icon and off-canvas */
184
+ .topbar__menu{
185
+ text-align: right;
186
+ font-size: 20px;
187
+ margin-right: .1rem;
188
+ }
189
+
190
+ .usermenu-off-canvas-holder .usermenu-off-canvas{
191
+ border-top: 1px solid;
192
+ border-bottom: 1px solid;
193
+ &.is-dropdown-submenu{
194
+ display: block;
195
+ position: static;
196
+ background: transparent;
197
+ border-left: 0;
198
+ border-right: 0;
199
+ }
200
+ a{
201
+ display: block;
202
+ padding: 1em 2em;
203
+ color: $navbar-color;
204
+ &:hover{
205
+ background: $navbar-bg-hover;
206
+ color: $navbar-color-hover;
207
+ }
208
+ }
209
+ }
210
+
211
+
212
+ .off-canvas .topbar__user__login{
213
+ text-align: center;
214
+ margin-top: 1rem;
215
+ padding-top: 1rem;
216
+ padding-bottom: 1rem;
217
+ border-top: 1px solid;
218
+ border-bottom: 1px solid;
219
+ }
220
+
221
+
222
+ /* Main nav */
223
+ .main-nav{
224
+ padding: 0;
225
+ margin: 0;
226
+ list-style: none;
227
+ overflow-x: auto;
228
+
229
+ @include breakpoint(medium) {
230
+ -webkit-overflow-scrolling: touch;
231
+ white-space: nowrap;
232
+ display: flex;
233
+ >li{
234
+ display: inline-block;
235
+ flex: 1;
236
+ text-align: center;
237
+ }
238
+ }
239
+ }
240
+
241
+ .main-nav__link{
242
+ display: block;
243
+ padding: 1em 2em;
244
+ color: $navbar-color;
245
+ &:hover{
246
+ background: $navbar-bg-hover;
247
+ color: $navbar-color-hover;
248
+ }
249
+ }
250
+
251
+ .main-nav__link--active{
252
+ box-shadow: $navbar-active-shadow-small;
253
+ color: $navbar-active-color;
254
+ background: $navbar-active-bg;
255
+ @include breakpoint(medium) {
256
+ box-shadow: $navbar-active-shadow-medium;
257
+ }
258
+ }