Commit 1b60c137d8c3a559c74ee157265278f83bcfd529
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Merge branch 'serpro_api' into production
Showing
41 changed files
with
559 additions
and
279 deletions
Show diff stats
.travis.yml
@@ -19,13 +19,6 @@ addons: | @@ -19,13 +19,6 @@ addons: | ||
19 | - libsqlite3-dev | 19 | - libsqlite3-dev |
20 | - libxslt1-dev | 20 | - libxslt1-dev |
21 | 21 | ||
22 | -before_install: | ||
23 | -# FIXME: workaround while https://github.com/travis-ci/travis-ci/issues/4210 is open | ||
24 | - - rm config/initializers/default_icon_theme.rb | ||
25 | -# selenium support | ||
26 | - - export DISPLAY=:99.0 | ||
27 | - - sh -e /etc/init.d/xvfb start | ||
28 | - | ||
29 | before_script: | 22 | before_script: |
30 | - mkdir -p tmp/pids log | 23 | - mkdir -p tmp/pids log |
31 | - bundle check || bundle install | 24 | - bundle check || bundle install |
AUTHORS.md
1 | +This list is automatically generated at release time. Please do not change it. | ||
2 | + | ||
1 | If you are not listed here, but should be, please write to the noosfero mailing | 3 | If you are not listed here, but should be, please write to the noosfero mailing |
2 | list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev | 4 | list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev |
3 | (this list requires subscription to post, but since you are an author of | 5 | (this list requires subscription to post, but since you are an author of |
@@ -6,280 +8,121 @@ noosfero, that's not a problem). | @@ -6,280 +8,121 @@ noosfero, that's not a problem). | ||
6 | Developers | 8 | Developers |
7 | ========== | 9 | ========== |
8 | 10 | ||
11 | +Ábner Silva de Oliveira <abner.oliveira@serpro.gov.br> | ||
9 | Alan Freihof Tygel <alantygel@gmail.com> | 12 | Alan Freihof Tygel <alantygel@gmail.com> |
10 | -Alessandro Palmeira + Caio C. Salgado <alessandro.palmeira@gmail.com> | ||
11 | -Alessandro Palmeira + Caio Salgado + Diego Araújo + João M. M. da Silva <diegoamc90@gmail.com> | ||
12 | -Alessandro Palmeira + Caio Salgado <alessandro.palmeira@gmail.com> | ||
13 | -Alessandro Palmeira + Caio Salgado <caio.csalgado@gmail.com> | ||
14 | -Alessandro Palmeira + Carlos Morais <alessandro.palmeira@gmail.com> | ||
15 | -Alessandro Palmeira + Daniel Alves + Diego Araújo + Guilherme Rojas <danpaulalves@gmail.com> | ||
16 | -Alessandro Palmeira + Daniel Alves + Diego Araújo <diegoamc90@gmail.com> | ||
17 | -Alessandro Palmeira + Daniel Alves <alessandro.palmeira@gmail.com> | ||
18 | -Alessandro Palmeira + Diego Araujo + Daniela Feitosa <alessandro.palmeira@gmail.com> | ||
19 | -Alessandro Palmeira + Diego Araujo + Eduardo Morais <alessandro.palmeira@gmail.com> | ||
20 | -Alessandro Palmeira + Diego Araujo + João M. M. da Silva + Paulo Meirelles <alessandro.palmeira@gmail.com> | ||
21 | -Alessandro Palmeira + Diego Araujo + Rafael Manzo <alessandro.palmeira@gmail.com> | ||
22 | -Alessandro Palmeira + Diego Araujo <alessandro.palmeira@gmail.com> | ||
23 | -Alessandro Palmeira + Diego Araujo <diegoamc90@gmail.com> | ||
24 | -Alessandro Palmeira + Diego Araújo + João M. M. da Silva <alessandro.palmeira@gmail.com> | ||
25 | -Alessandro Palmeira + Diego Araújo + João M. M. da Silva <diegoamc90@gmail.com> | ||
26 | -Alessandro Palmeira + Diego Araújo + Pedro Leal + João M. M. da Silva <diegoamc90@gmail.com> | ||
27 | -Alessandro Palmeira + Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | ||
28 | -Alessandro Palmeira + Diego Araújo <alessandro.palmeira@gmail.com> | ||
29 | -Alessandro Palmeira + Diego Araújo <diegoamc90@gmail.com> | ||
30 | -Alessandro Palmeira + Eduardo Morais <alessandro.palmeira@gmail.com> | ||
31 | -Alessandro Palmeira + Guilherme Rojas <alessandro.palmeira@gmail.com> | ||
32 | -Alessandro Palmeira + Jefferson Fernandes <alessandro.palmeira@gmail.com> | ||
33 | -Alessandro Palmeira + Joao M. M. da Silva + Diego Araujo <alessandro.palmeira@gmail.com> | ||
34 | -Alessandro Palmeira + João M. M. Silva <alessandro.palmeira@gmail.com> | ||
35 | -Alessandro Palmeira + João M. M. da Silva + Renan Teruo <alessandro.palmeira@gmail.com> | ||
36 | -Alessandro Palmeira + João M. M. da Silva <alessandro.palmeira@gmail.com> | ||
37 | -Alessandro Palmeira + Paulo Meirelles + João M. M. da Silva <alessandro.palmeira@gmail.com> | ||
38 | -Alessandro Palmeira + Paulo Meirelles <alessandro.palmeira@gmail.com> | ||
39 | -Alessandro Palmeira + Rafael Manzo <alessandro.palmeira@gmail.com> | ||
40 | Alessandro Palmeira <alessandro.palmeira@gmail.com> | 13 | Alessandro Palmeira <alessandro.palmeira@gmail.com> |
14 | +Alex Campelo <campelo.al1@gmail.com> | ||
15 | +Álvaro Fernando <alvarofernandoms@gmail.com> | ||
41 | Ana Losnak <analosnak@gmail.com> | 16 | Ana Losnak <analosnak@gmail.com> |
42 | -Andre Bernardes <andrebsguedes@gmail.com> | ||
43 | -André Bernardes <andrebsguedes@gmail.com> | ||
44 | -André Guedes <andrebsguedes@fedora.local> | 17 | +Ana Paula Vargas <anapaulavnoronha@gmail.com> |
18 | +Andre Bedran <bedran.fleck@gmail.com> | ||
45 | André Guedes <andrebsguedes@gmail.com> | 19 | André Guedes <andrebsguedes@gmail.com> |
46 | -Antonio Terceiro + Carlos Morais <terceiro@colivre.coop.br> | ||
47 | -Antonio Terceiro + Paulo Meirelles <terceiro@colivre.coop.br> | ||
48 | Antonio Terceiro <terceiro@colivre.coop.br> | 20 | Antonio Terceiro <terceiro@colivre.coop.br> |
49 | Arthur Del Esposte <arthurmde@gmail.com> | 21 | Arthur Del Esposte <arthurmde@gmail.com> |
50 | -Arthur Del Esposte <arthurmde@yahoo.com.br> | ||
51 | Athos Ribeiro <athoscribeiro@gmail.com> | 22 | Athos Ribeiro <athoscribeiro@gmail.com> |
52 | Aurelio A. Heckert <aurelio@colivre.coop.br> | 23 | Aurelio A. Heckert <aurelio@colivre.coop.br> |
53 | Braulio Bhavamitra <braulio@eita.org.br> | 24 | Braulio Bhavamitra <braulio@eita.org.br> |
54 | -Braulio Bhavamitra <brauliobo@gmail.com> | ||
55 | -Bráulio Bhavamitra <brauliobo@gmail.com> | ||
56 | -Caio + Diego + Pedro + João <caio.csalgado@gmail.com> | ||
57 | -Caio <caio.csalgado@gmail.com> | ||
58 | Caio Formiga <caio.formiga@gmail.com> | 25 | Caio Formiga <caio.formiga@gmail.com> |
59 | -Caio SBA <caio@colivre.coop.br> | ||
60 | -Caio Salgado + Alessandro Palmeira <caio.csalgado@gmail.com> | ||
61 | -Caio Salgado + Carlos Morais + Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | ||
62 | -Caio Salgado + Diego Araujo <caio.csalgado@gmail.com> | ||
63 | -Caio Salgado + Diego Araújo + Jefferson Fernandes <caio.csalgado@gmail.com> | ||
64 | -Caio Salgado + Diego Araújo + João M. M. da Silva <caio.csalgado@gmail.com> | ||
65 | -Caio Salgado + Diego Araújo + Pedro Leal <caio.csalgado@gmail.com> | ||
66 | -Caio Salgado + Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | ||
67 | -Caio Salgado + Diego Araújo + Rafael Manzo <diegoamc90@gmail.com> | ||
68 | -Caio Salgado + Diego Araújo <caio.csalgado@gmail.com> | ||
69 | -Caio Salgado + Diego Araújo <diegoamc90@gmail.com> | ||
70 | -Caio Salgado + Jefferson Fernandes <caio.csalgado@gmail.com> | ||
71 | -Caio Salgado + Jefferson Fernandes <jeffs.fernandes@gmail.com> | ||
72 | -Caio Salgado + Rafael Manzo <caio.csalgado@gmail.com> | ||
73 | -Caio Salgado + Renan Teruo + Jefferson Fernandes <jeffs.fernandes@gmail.com> | ||
74 | -Caio Salgado + Renan Teruo <caio.csalgado@gmail.com> | ||
75 | -Caio Salgado + Renan Teruo <caio.salgado@gmail.com> | ||
76 | -Caio Salgado + Renan Teruo <renanteruoc@gmail.com> | ||
77 | Caio Salgado <caio.csalgado@gmail.com> | 26 | Caio Salgado <caio.csalgado@gmail.com> |
27 | +Caio SBA <caio@colivre.coop.br> | ||
78 | Caio Tiago Oliveira <caiotiago@colivre.coop.br> | 28 | Caio Tiago Oliveira <caiotiago@colivre.coop.br> |
79 | -Caio, Pedro <caio.csalgado@gmail.com> | ||
80 | Carlos Andre de Souza <carlos.andre.souza@msn.com> | 29 | Carlos Andre de Souza <carlos.andre.souza@msn.com> |
81 | -Carlos Morais + Diego Araújo <diegoamc90@gmail.com> | ||
82 | -Carlos Morais + Eduardo Morais <carlos88morais@gmail.com> | ||
83 | -Carlos Morais + Paulo Meirelles <carlos88morais@gmail.com> | ||
84 | -Carlos Morais + Pedro Leal <carlos88morais@gmail.com> | ||
85 | Carlos Morais <carlos88morais@gmail.com> | 30 | Carlos Morais <carlos88morais@gmail.com> |
86 | Christophe DANIEL <papaeng@gmail.com> | 31 | Christophe DANIEL <papaeng@gmail.com> |
87 | -Daniel Alves + Diego Araújo <danpaulalves@gmail.com> | ||
88 | -Daniel Alves + Diego Araújo <diegoamc90@gmail.com> | ||
89 | -Daniel Alves + Diego Araújo + Guilherme Rojas <danpaulalves@gmail.com> | ||
90 | -Daniel Alves + Diego Araújo + Guilherme Rojas <diegoamc90@gmail.com> | ||
91 | -Daniel Alves + Diego Araújo + Guilherme Rojas <guilhermehrojas@gmail.com> | ||
92 | -Daniel Alves + Diego Araújo <danpaulalves@gmail.com> | ||
93 | -Daniel Alves + Diego Araújo <diegoamc90@gmail.com> | ||
94 | -Daniel Alves + Guilherme Rojas <danpaulalves@gmail.com> | ||
95 | -Daniel Alves + Rafael Manzo <rr.manzo@gmail.com> | 32 | +Daniela Feitosa <alessandro.palmeira@gmail.com> |
33 | +Daniel Alves <danpaulalves@gmail.com> | ||
34 | +Daniela Soares Feitosa <danielafeitosa@colivre.coop.br> | ||
96 | Daniel Bucher <daniel.bucher88@gmail.com> | 35 | Daniel Bucher <daniel.bucher88@gmail.com> |
97 | Daniel Cunha <daniel@colivre.coop.br> | 36 | Daniel Cunha <daniel@colivre.coop.br> |
98 | -Daniela Soares Feitosa <danielafeitosa@colivre.coop.br> | 37 | +Daniel Tygel <dtygel@eita.org.br> |
99 | David Carlos <ddavidcarlos1392@gmail.com> | 38 | David Carlos <ddavidcarlos1392@gmail.com> |
100 | -Diego + Jefferson <diegoamc90@gmail.com> | ||
101 | -Diego + Renan <renanteruoc@gmail.com> | ||
102 | -Diego Araujo + Caio Salgado <diegoamc90@gmail.com> | ||
103 | -Diego Araujo + Jefferson Fernandes <jeffs.fernandes@gmail.com> | ||
104 | -Diego Araujo + Rafael Manzo <diegoamc90@gmail.com> | ||
105 | -Diego Araujo + Rodrigo Souto + Rafael Manzo <rr.manzo@gmail.com> | ||
106 | -Diego Araújo + Alessandro Palmeira + João M. M. da Silva <diegoamc90@gmail.com> | ||
107 | -Diego Araújo + Alessandro Palmeira + Rafael Manzo <rr.manzo@gmail.com> | ||
108 | -Diego Araújo + Alessandro Palmeira <diegoamc90@gmail.com> | ||
109 | -Diego Araújo + Daniel Alves + Rafael Manzo <rr.manzo@gmail.com> | ||
110 | -Diego Araújo + Eduardo Morais + Paulo Meirelles <diegoamc90@gmail.com> | ||
111 | -Diego Araújo + Guilherme Rojas <diegoamc90@gmail.com> | ||
112 | -Diego Araújo + Jefferson Fernandes <diegoamc90@gmail.com> | ||
113 | -Diego Araújo + João M. M. da Silva + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | ||
114 | -Diego Araújo + João M. M. da Silva + João Machini <diegoamc90@gmail.com> | ||
115 | -Diego Araújo + João M. M. da Silva + Pedro Leal <diegoamc90@gmail.com> | ||
116 | -Diego Araújo + João M. M. da Silva <diegoamc90@gmail.com> | ||
117 | -Diego Araújo + João Machini <diegoamc90@gmail.com> | ||
118 | -Diego Araújo + João Machini <digoamc90@gmail.com> | ||
119 | -Diego Araújo + Paulo Meirelles <diegoamc90@gmail.com> | ||
120 | -Diego Araújo + Pedro Leal <diegoamc90@gmail.com> | ||
121 | -Diego Araújo + Rafael Manzo <diegoamc90@gmail.com> | ||
122 | -Diego Araújo + Renan Teruo + Alessandro Palmeira <diegoamc90@gmail.com> | ||
123 | -Diego Araújo + Renan Teruo <diegoamc90@gmail.com> | ||
124 | -Diego Araújo <diegoamc90@gmail.com> | ||
125 | -Diego Martinez <diegoamc90@gmail.com> | ||
126 | -DylanGuedes <djmgguedes@gmail.com> | ||
127 | -Eduardo Passos <eduardo@risa.localdomain.localhost> | 39 | +Diego Araujo <diegoamc90@gmail.com> |
40 | +Dylan Guedes <djmgguedes@gmail.com> | ||
41 | +Eduardo Morais | ||
128 | Eduardo Passos <eduardosteps@gmail.com> | 42 | Eduardo Passos <eduardosteps@gmail.com> |
129 | Eduardo Tourinho Edington <eduardo.edington@serpro.gov.br> | 43 | Eduardo Tourinho Edington <eduardo.edington@serpro.gov.br> |
130 | Eduardo Vital <vitaldu@gmail.com> | 44 | Eduardo Vital <vitaldu@gmail.com> |
131 | -Evandro Jr <evandrojr@gmail.com> | ||
132 | -Evandro Junior <evandrojr@gmail.com> | ||
133 | Evandro Magalhaes Leite Junior <evandro.leite@serpro.gov.br> | 45 | Evandro Magalhaes Leite Junior <evandro.leite@serpro.gov.br> |
134 | Fabio Teixeira <fabio1079@gmail.com> | 46 | Fabio Teixeira <fabio1079@gmail.com> |
135 | FAMMA TV NOTICIAS MEDIOS DE CO <revistafammatvmusic.oficial@gmail.com> | 47 | FAMMA TV NOTICIAS MEDIOS DE CO <revistafammatvmusic.oficial@gmail.com> |
136 | -Fabio Teixeira <fabio1079@gmail.com> | ||
137 | Fernanda Lopes <nanda.listas+psl@gmail.com> | 48 | Fernanda Lopes <nanda.listas+psl@gmail.com> |
138 | Filipe Ribeiro <firibeiro77@live.com> | 49 | Filipe Ribeiro <firibeiro77@live.com> |
139 | -Francisco Marcelo A. Lima Júnior <francisco.lima-junior@serpro.gov.br> | ||
140 | -Francisco Marcelo de Araujo Lima Junior <79350259591@serpro-1457614.(none)> | ||
141 | Francisco Marcelo de Araújo Lima Júnior <francisco.lima-junior@serpro.gov.br> | 50 | Francisco Marcelo de Araújo Lima Júnior <francisco.lima-junior@serpro.gov.br> |
142 | -Francisco Marcelo de Araújo Lima Júnior <maljunior@gmail.com> | ||
143 | Gabriela Navarro <navarro1703@gmail.com> | 51 | Gabriela Navarro <navarro1703@gmail.com> |
144 | Gonzalo Exequiel Pedone <hipersayan.x@gmail.com> | 52 | Gonzalo Exequiel Pedone <hipersayan.x@gmail.com> |
145 | Grazieno Pellegrino <grazieno@gmail.com> | 53 | Grazieno Pellegrino <grazieno@gmail.com> |
146 | -Gust <darksshades@hotmail.com> | 54 | +Guilherme C. Muniz <guilherme.cmuniz@gmail.com> |
55 | +Guilherme Rojas <guilhermehrojas@gmail.com> | ||
56 | +Gustavo Jaruga <darksshades@gmail.com> | ||
147 | Hebert Douglas <hebertdougl@gmail.com> | 57 | Hebert Douglas <hebertdougl@gmail.com> |
148 | Hugo Melo <hugo@riseup.net> | 58 | Hugo Melo <hugo@riseup.net> |
59 | +Iolane Andrade <andrade.icaa@gmail.com> | ||
149 | Isaac Canan <isaac@intelletto.com.br> | 60 | Isaac Canan <isaac@intelletto.com.br> |
150 | Italo Valcy <italo@dcc.ufba.br> | 61 | Italo Valcy <italo@dcc.ufba.br> |
151 | -Jefferson Fernandes + Diego Araujo + Rafael Manzo <jeffs.fernandes@gmail.com> | ||
152 | -Jefferson Fernandes + Joao M. M. Silva <jeffs.fernandes@gmail.com> | ||
153 | -Jefferson Fernandes + Joao M. M. da Silva <jeffs.fernandes@gmail.com> | ||
154 | -Joao M. M. Silva + Jefferson Fernandes <jaodsilv@linux.ime.usp.br> | ||
155 | -Joao M. M. da Silva + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | ||
156 | -Joao M. M. da Silva + Jefferson Fernandes <jaodsilv@linux.ime.usp.br> | 62 | +Jefferson Fernandes <jeffs.fernandes@gmail.com> |
63 | +Jérôme Jutteau <j.jutteau@gmail.com> | ||
64 | +João Machini | ||
65 | +João M. M. da Silva <jaodsilv@linux.ime.usp.br> | ||
157 | Joenio Costa <joenio@colivre.coop.br> | 66 | Joenio Costa <joenio@colivre.coop.br> |
158 | -Jose Pedro <1jpsneto@gmail.com> | ||
159 | Josef Spillner <josef.spillner@tu-dresden.de> | 67 | Josef Spillner <josef.spillner@tu-dresden.de> |
160 | -João M. M. Silva + Caio Salgado <jaodsilv@linux.ime.usp.br> | ||
161 | -João M. M. Silva + Diego Araújo <jaodsilv@linux.ime.usp.br> | ||
162 | -João M. M. Silva + Paulo Meirelles <jaodsilv@linux.ime.usp.br> | ||
163 | -João M. M. Silva + Rafael Manzo <jaodsilv@linux.ime.usp.br> | ||
164 | -João M. M. Silva + Renan Teruo <jaodsilv@linux.ime.usp.br> | ||
165 | -João M. M. da Silva + Alessandro Palmeira + Diego Araújo + Caio Salgado <jaodsilv@linux.ime.usp.br> | ||
166 | -João M. M. da Silva + Alessandro Palmeira + Diego Araújo <jaodsilv@linux.ime.usp.br> | ||
167 | -João M. M. da Silva + Alessandro Palmeira + João Machini <jaodsilv@linux.ime.usp.br> | ||
168 | -João M. M. da Silva + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | ||
169 | -João M. M. da Silva + Caio Salgado + Alessandro Palmeira <jaodsilv@linux.ime.usp.br> | ||
170 | -João M. M. da Silva + Caio Salgado <jaodsilv@linux.ime.usp.br> | ||
171 | -João M. M. da Silva + Carlos Morais <jaodsilv@linux.ime.usp.br> | ||
172 | -João M. M. da Silva + Diego Araújo + Pedro Leal <jaodsilv@linux.ime.usp.br> | ||
173 | -João M. M. da Silva + Diego Araújo <diegoamc90@gmail.com> | ||
174 | -João M. M. da Silva + Diego Araújo <jaodsilv@linux.ime.usp.br> | ||
175 | -João M. M. da Silva + Jefferson Fernandes <jaodsilv@linux.ime.usp.br> | ||
176 | -João M. M. da Silva + João M. Miranda <jaodsilv@linux.ime.usp.br> | ||
177 | -João M. M. da Silva + Paulo Meirelles <jaodsilv@linux.ime.usp.br> | ||
178 | -João M. M. da Silva + Pedro Leal <jaodsilv@linux.ime.usp.br> | ||
179 | -João M. M. da Silva + Rafael Manzo + Diego Araújo <jaodsilv@linux.ime.usp.br> | ||
180 | -João M. M. da Silva + Rafael Manzo <jaodsilv@linux.ime.usp.br> | ||
181 | -João M. M. da Silva + Renan Teruo <jaodsilv@linux.ime.usp.br> | ||
182 | -João M. M. da Silva <jaodsilv@linux.ime.usp.br> | ||
183 | -João Marco Maciel da Silva + Rafael Manzo + Renan Teruo <jaodsilv@linux.ime.usp.br> | ||
184 | -João da Silva + Eduardo Morais + Rafael Manzo <rr.manzo@gmail.com> | ||
185 | -João da Silva <jaodsilv@linux.ime.usp.br> | ||
186 | -Junior Silva <junior@bajor.localhost.localdomain> | ||
187 | -Junior Silva <junior@sedeantigo.colivre.coop.br> | 68 | +Jose Pedro <1jpsneto@gmail.com> |
188 | Junior Silva <juniorsilva1001@gmail.com> | 69 | Junior Silva <juniorsilva1001@gmail.com> |
189 | -Junior Silva <juniorsilva7@juniorsilva-Aspire-5750Z.(none)> | ||
190 | -Junior Silva <juniorsilva@colivre.coop.br> | ||
191 | -Jérôme Jutteau <j.jutteau@gmail.com> | ||
192 | Keilla Menezes <keilla@colivre.coop.br> | 70 | Keilla Menezes <keilla@colivre.coop.br> |
193 | Larissa Reis <larissa@colivre.coop.br> | 71 | Larissa Reis <larissa@colivre.coop.br> |
194 | -Larissa Reis <reiss.larissa@gmail.com> | ||
195 | Leandro Alves <leandrosustenido@gmail.com> | 72 | Leandro Alves <leandrosustenido@gmail.com> |
196 | -Leandro Nunes dos Santos <81665687568@serpro-1541727.(none)> | ||
197 | -Leandro Nunes dos Santos <81665687568@serpro-1541727.Home> | ||
198 | Leandro Nunes dos Santos <leandro.santos@serpro.gov.br> | 73 | Leandro Nunes dos Santos <leandro.santos@serpro.gov.br> |
199 | -Leandro Nunes dos Santos <leandronunes@gmail.com> | 74 | +Leandro Veloso <leandrovelosorodrigues@gmail.com> |
200 | LinguÁgil 2010 <linguagil.bahia@gmail.com> | 75 | LinguÁgil 2010 <linguagil.bahia@gmail.com> |
76 | +Lucas Couto <loc.unb@gmail.com> | ||
201 | Lucas Kanashiro <kanashiro.duarte@gmail.com> | 77 | Lucas Kanashiro <kanashiro.duarte@gmail.com> |
202 | -Lucas Melo <lucas@colivre.coop.br> | ||
203 | Lucas Melo <lucaspradomelo@gmail.com> | 78 | Lucas Melo <lucaspradomelo@gmail.com> |
204 | -Luciano <lucianopcbr@gmail.com> | ||
205 | -Luciano Prestes Cavacanti <lucianopcbr@gmail.com> | ||
206 | Luciano Prestes Cavalcanti <lucianopcbr@gmail.com> | 79 | Luciano Prestes Cavalcanti <lucianopcbr@gmail.com> |
207 | Luis David Aguilar Carlos <ludwig9003@gmail.com> | 80 | Luis David Aguilar Carlos <ludwig9003@gmail.com> |
208 | Luiz Fernando de Freitas Matos <luiz@luizff.matos@gmail.com> | 81 | Luiz Fernando de Freitas Matos <luiz@luizff.matos@gmail.com> |
209 | -M for Momo <mo@rtnp.org> | ||
210 | -Marcelo Júnior <maljunior@gmail.com> | ||
211 | -Marcos <marcos.rpj2@gmail.com> | 82 | +Luiz Matos <luizff.matos@gmail.com> |
212 | Marcos Ramos <ms.ramos@outlook.com> | 83 | Marcos Ramos <ms.ramos@outlook.com> |
84 | +Marcos Ronaldo <marcos.rpj2@gmail.com> | ||
85 | +Mariel Zasso <noosfero-br@listas.softwarelivre.org> | ||
213 | Martín Olivera <molivera@solar.org.ar> | 86 | Martín Olivera <molivera@solar.org.ar> |
87 | +Matheus Faria <matheus.sousa.faria@gmail.com> | ||
214 | Maurilio Atila <cabelotaina@gmail.com> | 88 | Maurilio Atila <cabelotaina@gmail.com> |
89 | +M for Momo <mo@rtnp.org> | ||
215 | Michal Čihař <michal@cihar.com> | 90 | Michal Čihař <michal@cihar.com> |
216 | Michel Felipe <mfelipeof@gmail.com> | 91 | Michel Felipe <mfelipeof@gmail.com> |
217 | Moises Machado <moises@colivre.coop.br> | 92 | Moises Machado <moises@colivre.coop.br> |
218 | -Nanda Lopes <nanda.listas+psl@gmail.com> | ||
219 | Naíla Alves <naila@colivre.coop.br> | 93 | Naíla Alves <naila@colivre.coop.br> |
94 | +Nanda Lopes <nanda.listas+psl@gmail.com> | ||
220 | Niemand Jedermann <predatorix@web.de> | 95 | Niemand Jedermann <predatorix@web.de> |
221 | Parley Martins <parleypachecomartins@gmail.com> | 96 | Parley Martins <parleypachecomartins@gmail.com> |
222 | -Paulo Meirelles + Alessandro Palmeira + João M. M. da Silva <paulo@softwarelivre.org> | ||
223 | -Paulo Meirelles + Alessandro Palmeira <paulo@softwarelivre.org> | ||
224 | -Paulo Meirelles + Carlos Morais <paulo@softwarelivre.org> | ||
225 | -Paulo Meirelles + Diego Araújo <paulo@softwarelivre.org> | ||
226 | -Paulo Meirelles + João M. M. da Silva <paulo@softwarelivre.org> | ||
227 | -Paulo Meirelles + Rafael Manzo <paulo@softwarelivre.org> | ||
228 | Paulo Meirelles <paulo@softwarelivre.org> | 97 | Paulo Meirelles <paulo@softwarelivre.org> |
98 | +Pedro de Lyra <pedrodelyra@gmail.com> | ||
99 | +Pedro Leal | ||
100 | +Rafael de Souza Queiroz <querafael@live.com> | ||
229 | Rafael Gomes <rafaelgomes@techfree.com.br> | 101 | Rafael Gomes <rafaelgomes@techfree.com.br> |
230 | -Rafael Manzo + Alessandro Palmeira <rr.manzo@gmail.com> | ||
231 | -Rafael Manzo + Daniel Alves <danpaulalves@gmail.com> | ||
232 | -Rafael Manzo + Diego Araújo <rr.manzo@gmail.com> | ||
233 | -Rafael Manzo + João M. M. Silva <rr.manzo@gmail.com> | ||
234 | -Rafael Manzo + Paulo Meirelles <rr.manzo@gmail.com> | ||
235 | Rafael Martins <rmmartins@gmail.com> | 102 | Rafael Martins <rmmartins@gmail.com> |
236 | -Rafael Reggiani Manzo + Caio Salgado + Jefferson Fernandes <rr.manzo@gmail.com> | ||
237 | -Rafael Reggiani Manzo + Diego Araujo <diegoamc90@gmail.com> | ||
238 | -Rafael Reggiani Manzo + Diego Araujo <rr.manzo@gmail.com> | ||
239 | -Rafael Reggiani Manzo + Diego Araújo <rr.manzo@gmail.com> | ||
240 | -Rafael Reggiani Manzo + João M. M. da Silva <rr.manzo@gmail.com> | ||
241 | Rafael Reggiani Manzo <rr.manzo@gmail.com> | 103 | Rafael Reggiani Manzo <rr.manzo@gmail.com> |
242 | Raphaël Rousseau <raph@r4f.org> | 104 | Raphaël Rousseau <raph@r4f.org> |
243 | -Raquel <rcordioli@gmail.com> | ||
244 | Raquel Lira <raquel.lira@gmail.com> | 105 | Raquel Lira <raquel.lira@gmail.com> |
245 | -Renan Teruo + Caio Salgado <renanteruoc@gmail.com> | ||
246 | -Renan Teruo + Diego Araujo <renanteruoc@gmail.com> | ||
247 | -Renan Teruo + Diego Araújo <renanteruoc@gmail.com> | ||
248 | -Renan Teruo + Paulo Meirelles <renanteruoc@gmail.com> | ||
249 | -Renan Teruo + Rafael Manzo <renanteruoc@gmail.com> | ||
250 | -Renan Teruoc + Diego Araujo <renanteruoc@gmail.com> | ||
251 | -Rodrigo Souto + Ana Losnak + Daniel Bucher + Caio Almeida + Leandro Nunes + Daniela Feitosa + Mariel Zasso <noosfero-br@listas.softwarelivre.org> | 106 | +Raquel <rcordioli@gmail.com> |
107 | +Renan Costa <renan2727@hotmail.com> | ||
108 | +Renan Teruo <renanteruoc@gmail.com> | ||
109 | +Rodrigo Medeiros <rodrigo.mss01@gmail.com> | ||
252 | Rodrigo Souto <rodrigo@colivre.coop.br> | 110 | Rodrigo Souto <rodrigo@colivre.coop.br> |
253 | Ronny Kursawe <kursawe.ronny@googlemail.com> | 111 | Ronny Kursawe <kursawe.ronny@googlemail.com> |
254 | Samuel R. C. Vale <srcvale@holoscopio.com> | 112 | Samuel R. C. Vale <srcvale@holoscopio.com> |
255 | -TWS <tablettws@gmail.com> | ||
256 | -Tallys Martins <tallysmartins@gmail.com> | ||
257 | Tallys Martins <tallysmartins@yahoo.com.br> | 113 | Tallys Martins <tallysmartins@yahoo.com.br> |
258 | Thiago Casotti <thiago.casotti@uol.com.br> | 114 | Thiago Casotti <thiago.casotti@uol.com.br> |
115 | +Thiago Kairala <thiagor.kairala@gmail.com> | ||
259 | Thiago Ribeiro <thiagitosouza@hotmail.com> | 116 | Thiago Ribeiro <thiagitosouza@hotmail.com> |
260 | Thiago Zoroastro <thiago.zoroastro@bol.com.br> | 117 | Thiago Zoroastro <thiago.zoroastro@bol.com.br> |
261 | Tuux <tuxa@galaxie.eu.org> | 118 | Tuux <tuxa@galaxie.eu.org> |
119 | +TWS <tablettws@gmail.com> | ||
262 | Valessio Brito <contato@valessiobrito.com.br> | 120 | Valessio Brito <contato@valessiobrito.com.br> |
263 | -Valessio Brito <contato@valessiobrito.info> | ||
264 | -Valessio Brito <valessio@gmail.com> | ||
265 | -Victor Carvalho <victorhugodf.ac@gmail.com> | ||
266 | Victor Costa <vfcosta@gmail.com> | 121 | Victor Costa <vfcosta@gmail.com> |
267 | Victor Hugo Alves de Carvalho <victorhugodf.ac@gmail.com> | 122 | Victor Hugo Alves de Carvalho <victorhugodf.ac@gmail.com> |
268 | Vinicius Cubas Brand <viniciuscb@gmail.com> | 123 | Vinicius Cubas Brand <viniciuscb@gmail.com> |
269 | -Visita <visita@debian.(none)> | 124 | +Wilton Rodrigues <braynwilton@gmail.com> |
270 | Yann Lugrin <yann.lugrin@liquid-concept.ch> | 125 | Yann Lugrin <yann.lugrin@liquid-concept.ch> |
271 | -alcampelo <alcampelo@alcampelo.(none)> | ||
272 | -analosnak <analosnak@gmail.com> | ||
273 | -daniel <dtygel@eita.org.br> | ||
274 | -diegoamc <diegoamc90@gmail.com> | ||
275 | -dtygel <dtygel@gmail.com> | ||
276 | -juniorsilva <juniorsilva@QonoS.localhost.localdomain> | ||
277 | -root <root@17edebf1ae91> | ||
278 | -root <root@debian.sdr.serpro> | ||
279 | -tallys <tallys@tallys.(none)> | ||
280 | -tallys <tallys@tallys> | ||
281 | -vfcosta <vfcosta@gmail.com> | ||
282 | -Ábner Silva de Oliveira <abner.oliveira@serpro.gov.br> | ||
283 | 126 | ||
284 | Ideas, specifications and incentive | 127 | Ideas, specifications and incentive |
285 | =================================== | 128 | =================================== |
Gemfile
@@ -19,11 +19,13 @@ gem 'gettext', '~> 2.2.1', :require => false | @@ -19,11 +19,13 @@ gem 'gettext', '~> 2.2.1', :require => false | ||
19 | gem 'locale', '~> 2.0.5' | 19 | gem 'locale', '~> 2.0.5' |
20 | gem 'whenever', :require => false | 20 | gem 'whenever', :require => false |
21 | gem 'eita-jrails', '~> 0.9.5', require: 'jrails' | 21 | gem 'eita-jrails', '~> 0.9.5', require: 'jrails' |
22 | -gem 'grape', '~> 0.11.0' | 22 | + |
23 | +# API dependencies | ||
24 | +gem 'grape', '~> 0.12' | ||
23 | gem 'grape-entity' | 25 | gem 'grape-entity' |
24 | -gem 'grape-swagger' | ||
25 | -gem 'grape_logging' | ||
26 | -gem 'api-pagination', '~> 4.1.1' | 26 | +#FIXME Get the Grape Loggin from master yo solve this issue https://github.com/intridea/grape/issues/1059 |
27 | +#We have to remove this commit referenve code when update the next release of grape_logging. Actualy we are using (1.1.2) | ||
28 | +gem 'grape_logging', :git => 'https://github.com/aceunreal/grape_logging.git', :ref => '100091b' | ||
27 | gem 'rack-cors' | 29 | gem 'rack-cors' |
28 | gem 'rack-contrib' | 30 | gem 'rack-contrib' |
29 | gem 'liquid', '~> 3.0.3' | 31 | gem 'liquid', '~> 3.0.3' |
@@ -32,8 +34,7 @@ gem 'liquid', '~> 3.0.3' | @@ -32,8 +34,7 @@ gem 'liquid', '~> 3.0.3' | ||
32 | # FIXME list here all actual dependencies (i.e. the ones in debian/control), | 34 | # FIXME list here all actual dependencies (i.e. the ones in debian/control), |
33 | # with their GEM names (not the Debian package names) | 35 | # with their GEM names (not the Debian package names) |
34 | 36 | ||
35 | -# FIXME list here all actual dependencies (i.e. the ones in debian/control), | ||
36 | -# with their GEM names (not the Debian package names) | 37 | +gem 'api-pagination', '~> 4.1.1' |
37 | 38 | ||
38 | # asset pipeline | 39 | # asset pipeline |
39 | gem 'uglifier', '>= 1.0.3' | 40 | gem 'uglifier', '>= 1.0.3' |
app/models/article.rb
@@ -510,9 +510,9 @@ class Article < ActiveRecord::Base | @@ -510,9 +510,9 @@ class Article < ActiveRecord::Base | ||
510 | where( | 510 | where( |
511 | [ | 511 | [ |
512 | "published = ? OR last_changed_by_id = ? OR profile_id = ? OR ? | 512 | "published = ? OR last_changed_by_id = ? OR profile_id = ? OR ? |
513 | - OR (show_to_followers = ? AND ? AND profile_id = ?)", true, user.id, user.id, | 513 | + OR (show_to_followers = ? AND ? AND profile_id IN (?))", true, user.id, user.id, |
514 | profile.nil? ? false : user.has_permission?(:view_private_content, profile), | 514 | profile.nil? ? false : user.has_permission?(:view_private_content, profile), |
515 | - true, user.follows?(profile), (profile.nil? ? nil : profile.id) | 515 | + true, (profile.nil? ? true : user.follows?(profile)), ( profile.nil? ? (user.friends.select('profiles.id')) : [profile.id]) |
516 | ] | 516 | ] |
517 | ) | 517 | ) |
518 | } | 518 | } |
db/schema.rb
@@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
11 | # | 11 | # |
12 | # It's strongly recommended to check this file into your version control system. | 12 | # It's strongly recommended to check this file into your version control system. |
13 | 13 | ||
14 | -ActiveRecord::Schema.define(:version => 20150603182105) do | 14 | +ActiveRecord::Schema.define(:version => 20150712194411) do |
15 | 15 | ||
16 | create_table "abuse_reports", :force => true do |t| | 16 | create_table "abuse_reports", :force => true do |t| |
17 | t.integer "reporter_id" | 17 | t.integer "reporter_id" |
@@ -48,6 +48,18 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -48,6 +48,18 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
48 | add_index "action_tracker_notifications", ["profile_id", "action_tracker_id"], :name => "index_action_tracker_notif_on_prof_id_act_tracker_id", :unique => true | 48 | add_index "action_tracker_notifications", ["profile_id", "action_tracker_id"], :name => "index_action_tracker_notif_on_prof_id_act_tracker_id", :unique => true |
49 | add_index "action_tracker_notifications", ["profile_id"], :name => "index_action_tracker_notifications_on_profile_id" | 49 | add_index "action_tracker_notifications", ["profile_id"], :name => "index_action_tracker_notifications_on_profile_id" |
50 | 50 | ||
51 | + create_table "article_followers", :force => true do |t| | ||
52 | + t.integer "person_id", :null => false | ||
53 | + t.integer "article_id", :null => false | ||
54 | + t.datetime "since" | ||
55 | + t.datetime "created_at", :null => false | ||
56 | + t.datetime "updated_at", :null => false | ||
57 | + end | ||
58 | + | ||
59 | + add_index "article_followers", ["article_id"], :name => "index_article_followers_on_article_id" | ||
60 | + add_index "article_followers", ["person_id", "article_id"], :name => "index_article_followers_on_person_id_and_article_id", :unique => true | ||
61 | + add_index "article_followers", ["person_id"], :name => "index_article_followers_on_person_id" | ||
62 | + | ||
51 | create_table "article_privacy_exceptions", :id => false, :force => true do |t| | 63 | create_table "article_privacy_exceptions", :id => false, :force => true do |t| |
52 | t.integer "article_id" | 64 | t.integer "article_id" |
53 | t.integer "person_id" | 65 | t.integer "person_id" |
@@ -75,8 +87,8 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -75,8 +87,8 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
75 | t.integer "comments_count" | 87 | t.integer "comments_count" |
76 | t.boolean "advertise", :default => true | 88 | t.boolean "advertise", :default => true |
77 | t.boolean "published", :default => true | 89 | t.boolean "published", :default => true |
78 | - t.date "start_date" | ||
79 | - t.date "end_date" | 90 | + t.datetime "start_date" |
91 | + t.datetime "end_date" | ||
80 | t.integer "children_count", :default => 0 | 92 | t.integer "children_count", :default => 0 |
81 | t.boolean "accept_comments", :default => true | 93 | t.boolean "accept_comments", :default => true |
82 | t.integer "reference_article_id" | 94 | t.integer "reference_article_id" |
@@ -127,8 +139,8 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -127,8 +139,8 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
127 | t.integer "comments_count", :default => 0 | 139 | t.integer "comments_count", :default => 0 |
128 | t.boolean "advertise", :default => true | 140 | t.boolean "advertise", :default => true |
129 | t.boolean "published", :default => true | 141 | t.boolean "published", :default => true |
130 | - t.date "start_date" | ||
131 | - t.date "end_date" | 142 | + t.datetime "start_date" |
143 | + t.datetime "end_date" | ||
132 | t.integer "children_count", :default => 0 | 144 | t.integer "children_count", :default => 0 |
133 | t.boolean "accept_comments", :default => true | 145 | t.boolean "accept_comments", :default => true |
134 | t.integer "reference_article_id" | 146 | t.integer "reference_article_id" |
@@ -151,6 +163,8 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -151,6 +163,8 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
151 | t.integer "author_id" | 163 | t.integer "author_id" |
152 | t.integer "created_by_id" | 164 | t.integer "created_by_id" |
153 | t.boolean "show_to_followers", :default => true | 165 | t.boolean "show_to_followers", :default => true |
166 | + t.integer "sash_id" | ||
167 | + t.integer "level", :default => 0 | ||
154 | end | 168 | end |
155 | 169 | ||
156 | add_index "articles", ["comments_count"], :name => "index_articles_on_comments_count" | 170 | add_index "articles", ["comments_count"], :name => "index_articles_on_comments_count" |
@@ -177,6 +191,17 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -177,6 +191,17 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
177 | add_index "articles_categories", ["article_id"], :name => "index_articles_categories_on_article_id" | 191 | add_index "articles_categories", ["article_id"], :name => "index_articles_categories_on_article_id" |
178 | add_index "articles_categories", ["category_id"], :name => "index_articles_categories_on_category_id" | 192 | add_index "articles_categories", ["category_id"], :name => "index_articles_categories_on_category_id" |
179 | 193 | ||
194 | + create_table "badges_sashes", :force => true do |t| | ||
195 | + t.integer "badge_id" | ||
196 | + t.integer "sash_id" | ||
197 | + t.boolean "notified_user", :default => false | ||
198 | + t.datetime "created_at" | ||
199 | + end | ||
200 | + | ||
201 | + add_index "badges_sashes", ["badge_id", "sash_id"], :name => "index_badges_sashes_on_badge_id_and_sash_id" | ||
202 | + add_index "badges_sashes", ["badge_id"], :name => "index_badges_sashes_on_badge_id" | ||
203 | + add_index "badges_sashes", ["sash_id"], :name => "index_badges_sashes_on_sash_id" | ||
204 | + | ||
180 | create_table "blocks", :force => true do |t| | 205 | create_table "blocks", :force => true do |t| |
181 | t.string "title" | 206 | t.string "title" |
182 | t.integer "box_id" | 207 | t.integer "box_id" |
@@ -272,8 +297,10 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -272,8 +297,10 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
272 | t.string "referrer" | 297 | t.string "referrer" |
273 | t.text "settings" | 298 | t.text "settings" |
274 | t.integer "paragraph_id" | 299 | t.integer "paragraph_id" |
300 | + t.string "paragraph_uuid" | ||
275 | end | 301 | end |
276 | 302 | ||
303 | + add_index "comments", ["paragraph_uuid"], :name => "index_comments_on_paragraph_uuid" | ||
277 | add_index "comments", ["source_id", "spam"], :name => "index_comments_on_source_id_and_spam" | 304 | add_index "comments", ["source_id", "spam"], :name => "index_comments_on_source_id_and_spam" |
278 | 305 | ||
279 | create_table "contact_lists", :force => true do |t| | 306 | create_table "contact_lists", :force => true do |t| |
@@ -313,6 +340,17 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -313,6 +340,17 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
313 | add_index "domains", ["owner_id", "owner_type", "is_default"], :name => "index_domains_on_owner_id_and_owner_type_and_is_default" | 340 | add_index "domains", ["owner_id", "owner_type", "is_default"], :name => "index_domains_on_owner_id_and_owner_type_and_is_default" |
314 | add_index "domains", ["owner_id", "owner_type"], :name => "index_domains_on_owner_id_and_owner_type" | 341 | add_index "domains", ["owner_id", "owner_type"], :name => "index_domains_on_owner_id_and_owner_type" |
315 | 342 | ||
343 | + create_table "email_templates", :force => true do |t| | ||
344 | + t.string "name" | ||
345 | + t.string "template_type" | ||
346 | + t.string "subject" | ||
347 | + t.text "body" | ||
348 | + t.integer "owner_id" | ||
349 | + t.string "owner_type" | ||
350 | + t.datetime "created_at", :null => false | ||
351 | + t.datetime "updated_at", :null => false | ||
352 | + end | ||
353 | + | ||
316 | create_table "environments", :force => true do |t| | 354 | create_table "environments", :force => true do |t| |
317 | t.string "name" | 355 | t.string "name" |
318 | t.string "contact_email" | 356 | t.string "contact_email" |
@@ -332,6 +370,7 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -332,6 +370,7 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
332 | t.string "default_language" | 370 | t.string "default_language" |
333 | t.string "noreply_email" | 371 | t.string "noreply_email" |
334 | t.string "redirection_after_signup", :default => "keep_on_same_page" | 372 | t.string "redirection_after_signup", :default => "keep_on_same_page" |
373 | + t.text "send_email_plugin_allow_to" | ||
335 | t.string "date_format", :default => "month_name_with_year" | 374 | t.string "date_format", :default => "month_name_with_year" |
336 | end | 375 | end |
337 | 376 | ||
@@ -368,6 +407,17 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -368,6 +407,17 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
368 | add_index "friendships", ["person_id", "friend_id"], :name => "index_friendships_on_person_id_and_friend_id" | 407 | add_index "friendships", ["person_id", "friend_id"], :name => "index_friendships_on_person_id_and_friend_id" |
369 | add_index "friendships", ["person_id"], :name => "index_friendships_on_person_id" | 408 | add_index "friendships", ["person_id"], :name => "index_friendships_on_person_id" |
370 | 409 | ||
410 | + create_table "gamification_plugin_badges", :force => true do |t| | ||
411 | + t.string "name" | ||
412 | + t.integer "level" | ||
413 | + t.string "description" | ||
414 | + t.string "custom_fields" | ||
415 | + t.integer "owner_id" | ||
416 | + t.string "owner_type" | ||
417 | + t.datetime "created_at", :null => false | ||
418 | + t.datetime "updated_at", :null => false | ||
419 | + end | ||
420 | + | ||
371 | create_table "images", :force => true do |t| | 421 | create_table "images", :force => true do |t| |
372 | t.integer "parent_id" | 422 | t.integer "parent_id" |
373 | t.string "content_type" | 423 | t.string "content_type" |
@@ -424,6 +474,46 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -424,6 +474,46 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
424 | t.datetime "updated_at" | 474 | t.datetime "updated_at" |
425 | end | 475 | end |
426 | 476 | ||
477 | + create_table "mark_comment_as_read_plugin", :force => true do |t| | ||
478 | + t.integer "comment_id" | ||
479 | + t.integer "person_id" | ||
480 | + end | ||
481 | + | ||
482 | + add_index "mark_comment_as_read_plugin", ["comment_id", "person_id"], :name => "index_mark_comment_as_read_plugin_on_comment_id_and_person_id", :unique => true | ||
483 | + | ||
484 | + create_table "merit_actions", :force => true do |t| | ||
485 | + t.integer "user_id" | ||
486 | + t.string "action_method" | ||
487 | + t.integer "action_value" | ||
488 | + t.boolean "had_errors", :default => false | ||
489 | + t.string "target_model" | ||
490 | + t.integer "target_id" | ||
491 | + t.text "target_data" | ||
492 | + t.boolean "processed", :default => false | ||
493 | + t.datetime "created_at", :null => false | ||
494 | + t.datetime "updated_at", :null => false | ||
495 | + end | ||
496 | + | ||
497 | + create_table "merit_activity_logs", :force => true do |t| | ||
498 | + t.integer "action_id" | ||
499 | + t.string "related_change_type" | ||
500 | + t.integer "related_change_id" | ||
501 | + t.string "description" | ||
502 | + t.datetime "created_at" | ||
503 | + end | ||
504 | + | ||
505 | + create_table "merit_score_points", :force => true do |t| | ||
506 | + t.integer "score_id" | ||
507 | + t.integer "num_points", :default => 0 | ||
508 | + t.string "log" | ||
509 | + t.datetime "created_at" | ||
510 | + end | ||
511 | + | ||
512 | + create_table "merit_scores", :force => true do |t| | ||
513 | + t.integer "sash_id" | ||
514 | + t.string "category", :default => "default" | ||
515 | + end | ||
516 | + | ||
427 | create_table "national_region_types", :force => true do |t| | 517 | create_table "national_region_types", :force => true do |t| |
428 | t.string "name" | 518 | t.string "name" |
429 | end | 519 | end |
@@ -440,6 +530,15 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -440,6 +530,15 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
440 | add_index "national_regions", ["name"], :name => "name_index" | 530 | add_index "national_regions", ["name"], :name => "name_index" |
441 | add_index "national_regions", ["national_region_code"], :name => "code_index" | 531 | add_index "national_regions", ["national_region_code"], :name => "code_index" |
442 | 532 | ||
533 | + create_table "pairwise_plugin_choices_related", :force => true do |t| | ||
534 | + t.integer "choice_id" | ||
535 | + t.integer "parent_choice_id" | ||
536 | + t.integer "question_id" | ||
537 | + t.integer "user_id" | ||
538 | + t.datetime "created_at", :null => false | ||
539 | + t.datetime "updated_at", :null => false | ||
540 | + end | ||
541 | + | ||
443 | create_table "price_details", :force => true do |t| | 542 | create_table "price_details", :force => true do |t| |
444 | t.decimal "price", :default => 0.0 | 543 | t.decimal "price", :default => 0.0 |
445 | t.integer "product_id" | 544 | t.integer "product_id" |
@@ -547,15 +646,37 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -547,15 +646,37 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
547 | t.boolean "allow_members_to_invite", :default => true | 646 | t.boolean "allow_members_to_invite", :default => true |
548 | t.boolean "invite_friends_only", :default => false | 647 | t.boolean "invite_friends_only", :default => false |
549 | t.boolean "secret", :default => false | 648 | t.boolean "secret", :default => false |
649 | + t.integer "sash_id" | ||
650 | + t.integer "level", :default => 0 | ||
550 | end | 651 | end |
551 | 652 | ||
552 | add_index "profiles", ["activities_count"], :name => "index_profiles_on_activities_count" | 653 | add_index "profiles", ["activities_count"], :name => "index_profiles_on_activities_count" |
553 | add_index "profiles", ["created_at"], :name => "index_profiles_on_created_at" | 654 | add_index "profiles", ["created_at"], :name => "index_profiles_on_created_at" |
655 | + add_index "profiles", ["enabled"], :name => "index_profiles_on_enabled" | ||
554 | add_index "profiles", ["environment_id"], :name => "index_profiles_on_environment_id" | 656 | add_index "profiles", ["environment_id"], :name => "index_profiles_on_environment_id" |
555 | add_index "profiles", ["friends_count"], :name => "index_profiles_on_friends_count" | 657 | add_index "profiles", ["friends_count"], :name => "index_profiles_on_friends_count" |
556 | add_index "profiles", ["identifier"], :name => "index_profiles_on_identifier" | 658 | add_index "profiles", ["identifier"], :name => "index_profiles_on_identifier" |
557 | add_index "profiles", ["members_count"], :name => "index_profiles_on_members_count" | 659 | add_index "profiles", ["members_count"], :name => "index_profiles_on_members_count" |
558 | add_index "profiles", ["region_id"], :name => "index_profiles_on_region_id" | 660 | add_index "profiles", ["region_id"], :name => "index_profiles_on_region_id" |
661 | + add_index "profiles", ["type"], :name => "index_profiles_on_type" | ||
662 | + add_index "profiles", ["validated"], :name => "index_profiles_on_validated" | ||
663 | + add_index "profiles", ["visible"], :name => "index_profiles_on_visible" | ||
664 | + | ||
665 | + create_table "proposals_discussion_plugin_proposal_evaluations", :force => true do |t| | ||
666 | + t.integer "proposal_task_id" | ||
667 | + t.integer "evaluator_id" | ||
668 | + t.integer "flagged_status" | ||
669 | + t.datetime "created_at", :null => false | ||
670 | + t.datetime "updated_at", :null => false | ||
671 | + end | ||
672 | + | ||
673 | + add_index "proposals_discussion_plugin_proposal_evaluations", ["evaluator_id"], :name => "index_proposals_discussion_plugin_proposal_evaluator_id" | ||
674 | + add_index "proposals_discussion_plugin_proposal_evaluations", ["proposal_task_id"], :name => "index_proposals_discussion_plugin_proposal_task_id" | ||
675 | + | ||
676 | + create_table "proposals_discussion_plugin_task_categories", :id => false, :force => true do |t| | ||
677 | + t.integer "task_id" | ||
678 | + t.integer "category_id" | ||
679 | + end | ||
559 | 680 | ||
560 | create_table "qualifier_certifiers", :force => true do |t| | 681 | create_table "qualifier_certifiers", :force => true do |t| |
561 | t.integer "qualifier_id" | 682 | t.integer "qualifier_id" |
@@ -597,6 +718,12 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -597,6 +718,12 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
597 | t.boolean "is_global" | 718 | t.boolean "is_global" |
598 | end | 719 | end |
599 | 720 | ||
721 | + add_index "role_assignments", ["accessor_id", "accessor_type", "resource_id", "resource_type"], :name => "index_on_role_assigments_accessor_resource_role" | ||
722 | + add_index "role_assignments", ["accessor_id", "accessor_type", "role_id"], :name => "index_on_role_assigments_accessor_role" | ||
723 | + add_index "role_assignments", ["accessor_id", "accessor_type"], :name => "index_role_assignments_on_accessor_id_and_accessor_type" | ||
724 | + add_index "role_assignments", ["resource_id", "resource_type", "role_id"], :name => "index_on_role_assigments_resource_role" | ||
725 | + add_index "role_assignments", ["resource_id", "resource_type"], :name => "index_role_assignments_on_resource_id_and_resource_type" | ||
726 | + | ||
600 | create_table "roles", :force => true do |t| | 727 | create_table "roles", :force => true do |t| |
601 | t.string "name" | 728 | t.string "name" |
602 | t.string "key" | 729 | t.string "key" |
@@ -606,6 +733,11 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -606,6 +733,11 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
606 | t.integer "profile_id" | 733 | t.integer "profile_id" |
607 | end | 734 | end |
608 | 735 | ||
736 | + create_table "sashes", :force => true do |t| | ||
737 | + t.datetime "created_at", :null => false | ||
738 | + t.datetime "updated_at", :null => false | ||
739 | + end | ||
740 | + | ||
609 | create_table "scraps", :force => true do |t| | 741 | create_table "scraps", :force => true do |t| |
610 | t.text "content" | 742 | t.text "content" |
611 | t.integer "sender_id" | 743 | t.integer "sender_id" |
@@ -684,7 +816,7 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | @@ -684,7 +816,7 @@ ActiveRecord::Schema.define(:version => 20150603182105) do | ||
684 | create_table "tasks", :force => true do |t| | 816 | create_table "tasks", :force => true do |t| |
685 | t.text "data" | 817 | t.text "data" |
686 | t.integer "status" | 818 | t.integer "status" |
687 | - t.date "end_date" | 819 | + t.datetime "end_date" |
688 | t.integer "requestor_id" | 820 | t.integer "requestor_id" |
689 | t.integer "target_id" | 821 | t.integer "target_id" |
690 | t.string "code", :limit => 40 | 822 | t.string "code", :limit => 40 |
lib/noosfero/api/helpers.rb
@@ -159,12 +159,13 @@ | @@ -159,12 +159,13 @@ | ||
159 | end | 159 | end |
160 | 160 | ||
161 | def by_reference(scope, params) | 161 | def by_reference(scope, params) |
162 | - if params[:reference_id] | ||
163 | - created_at = scope.find(params[:reference_id]).created_at | ||
164 | - scope.send("#{params.key?(:oldest) ? 'older_than' : 'younger_than'}", created_at) | ||
165 | - else | 162 | + reference_id = params[:reference_id].to_i == 0 ? nil : params[:reference_id].to_i |
163 | + if reference_id.nil? | ||
166 | scope | 164 | scope |
167 | - end | 165 | + else |
166 | + created_at = scope.find(reference_id).created_at | ||
167 | + scope.send("#{params.key?(:oldest) ? 'older_than' : 'younger_than'}", created_at) | ||
168 | + end | ||
168 | end | 169 | end |
169 | 170 | ||
170 | def select_filtered_collection_of(object, method, params) | 171 | def select_filtered_collection_of(object, method, params) |
lib/tasks/release.rake
@@ -53,6 +53,8 @@ namespace :noosfero do | @@ -53,6 +53,8 @@ namespace :noosfero do | ||
53 | end | 53 | end |
54 | 54 | ||
55 | AUTHORS_HEADER = <<EOF | 55 | AUTHORS_HEADER = <<EOF |
56 | +This list is automatically generated at release time. Please do not change it. | ||
57 | + | ||
56 | If you are not listed here, but should be, please write to the noosfero mailing | 58 | If you are not listed here, but should be, please write to the noosfero mailing |
57 | list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev | 59 | list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev |
58 | (this list requires subscription to post, but since you are an author of | 60 | (this list requires subscription to post, but since you are an author of |
@@ -82,7 +84,7 @@ EOF | @@ -82,7 +84,7 @@ EOF | ||
82 | begin | 84 | begin |
83 | File.open("AUTHORS.md", 'w') do |output| | 85 | File.open("AUTHORS.md", 'w') do |output| |
84 | output.puts AUTHORS_HEADER | 86 | output.puts AUTHORS_HEADER |
85 | - output.puts `git log --no-merges --pretty=format:'%aN <%aE>' | sort | uniq` | 87 | + output.puts `./script/authors` |
86 | output.puts AUTHORS_FOOTER | 88 | output.puts AUTHORS_FOOTER |
87 | end | 89 | end |
88 | commit_changes(['AUTHORS.md'], 'Updating authors file') if !pendencies_on_authors[:ok] | 90 | commit_changes(['AUTHORS.md'], 'Updating authors file') if !pendencies_on_authors[:ok] |
plugins/community_track/controllers/myprofile/community_track_plugin_myprofile_controller.rb
1 | class CommunityTrackPluginMyprofileController < MyProfileController | 1 | class CommunityTrackPluginMyprofileController < MyProfileController |
2 | - append_view_path File.join(File.dirname(__FILE__) + '/../../views') | ||
3 | 2 | ||
4 | before_filter :allow_edit_track, :only => :save_order | 3 | before_filter :allow_edit_track, :only => :save_order |
5 | 4 |
plugins/community_track/controllers/public/community_track_plugin_public_controller.rb
plugins/community_track/lib/community_track_plugin/track.rb
@@ -84,7 +84,8 @@ class CommunityTrackPlugin::Track < Folder | @@ -84,7 +84,8 @@ class CommunityTrackPlugin::Track < Folder | ||
84 | 84 | ||
85 | def category_name | 85 | def category_name |
86 | category = categories.first | 86 | category = categories.first |
87 | - category ? (category.top_ancestor.nil? ? '' : category.top_ancestor.name) : '' | 87 | + category = category.top_ancestor unless category.nil? |
88 | + category.nil? ? '' : category.name | ||
88 | end | 89 | end |
89 | 90 | ||
90 | def to_html(options = {}) | 91 | def to_html(options = {}) |
plugins/community_track/test/functional/community_track_plugin_cms_controller_test.rb
1 | -require File.dirname(__FILE__) + '/../test_helper' | 1 | +require_relative '../test_helper' |
2 | 2 | ||
3 | # Re-raise errors caught by the controller. | 3 | # Re-raise errors caught by the controller. |
4 | class CmsController; def rescue_action(e) raise e end; end | 4 | class CmsController; def rescue_action(e) raise e end; end |
plugins/community_track/test/functional/community_track_plugin_content_viewer_controller_test.rb
1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
2 | - | ||
3 | -class ContentViewerController | ||
4 | - append_view_path File.join(File.dirname(__FILE__) + '/../../views') | ||
5 | - def rescue_action(e) | ||
6 | - raise e | ||
7 | - end | ||
8 | -end | 1 | +require_relative '../test_helper' |
9 | 2 | ||
3 | +class ContentViewerController; def rescue_action(e) raise e end; end | ||
10 | class ContentViewerControllerTest < ActionController::TestCase | 4 | class ContentViewerControllerTest < ActionController::TestCase |
11 | 5 | ||
12 | def setup | 6 | def setup |
@@ -87,32 +81,32 @@ class ContentViewerControllerTest < ActionController::TestCase | @@ -87,32 +81,32 @@ class ContentViewerControllerTest < ActionController::TestCase | ||
87 | end | 81 | end |
88 | 82 | ||
89 | should 'render a div with block id for track list block' do | 83 | should 'render a div with block id for track list block' do |
90 | - @block = CommunityTrackPlugin::TrackListBlock.create!(:box => @profile.boxes.last) | 84 | + @block = CommunityTrackPlugin::TrackListBlock.create!(:box => @profile.boxes.first) |
91 | get :view_page, @step.url | 85 | get :view_page, @step.url |
92 | assert_tag :tag => 'div', :attributes => { :class => 'track_list', :id => "track_list_#{@block.id}" } | 86 | assert_tag :tag => 'div', :attributes => { :class => 'track_list', :id => "track_list_#{@block.id}" } |
93 | end | 87 | end |
94 | 88 | ||
95 | should 'render a div with block id for track card list block' do | 89 | should 'render a div with block id for track card list block' do |
96 | - @block = CommunityTrackPlugin::TrackCardListBlock.create!(:box => @profile.boxes.last) | 90 | + @block = CommunityTrackPlugin::TrackCardListBlock.create!(:box => @profile.boxes.first) |
97 | get :view_page, @step.url | 91 | get :view_page, @step.url |
98 | assert_tag :tag => 'div', :attributes => { :class => 'track_list', :id => "track_list_#{@block.id}" } | 92 | assert_tag :tag => 'div', :attributes => { :class => 'track_list', :id => "track_list_#{@block.id}" } |
99 | end | 93 | end |
100 | 94 | ||
101 | should 'render tracks in track list block' do | 95 | should 'render tracks in track list block' do |
102 | - @block = CommunityTrackPlugin::TrackListBlock.create!(:box => @profile.boxes.last) | 96 | + @block = CommunityTrackPlugin::TrackListBlock.create!(:box => @profile.boxes.first) |
103 | get :view_page, @step.url | 97 | get :view_page, @step.url |
104 | assert_tag :tag => 'div', :attributes => { :class => "item category_#{@track.category_name}" }, :descendant => { :tag => 'div', :attributes => { :class => 'steps' }, :descendant => { :tag => 'span', :attributes => { :class => "step #{@block.status_class(@step)}" } } } | 98 | assert_tag :tag => 'div', :attributes => { :class => "item category_#{@track.category_name}" }, :descendant => { :tag => 'div', :attributes => { :class => 'steps' }, :descendant => { :tag => 'span', :attributes => { :class => "step #{@block.status_class(@step)}" } } } |
105 | end | 99 | end |
106 | 100 | ||
107 | should 'render tracks in track card list block' do | 101 | should 'render tracks in track card list block' do |
108 | - @block = CommunityTrackPlugin::TrackCardListBlock.create!(:box => @profile.boxes.last) | 102 | + @block = CommunityTrackPlugin::TrackCardListBlock.create!(:box => @profile.boxes.first) |
109 | get :view_page, @step.url | 103 | get :view_page, @step.url |
110 | assert_tag :tag => 'div', :attributes => { :class => "item_card category_#{@track.category_name}" }, :descendant => { :tag => 'div', :attributes => { :class => 'track_content' } } | 104 | assert_tag :tag => 'div', :attributes => { :class => "item_card category_#{@track.category_name}" }, :descendant => { :tag => 'div', :attributes => { :class => 'track_content' } } |
111 | assert_tag :tag => 'div', :attributes => { :class => "item_card category_#{@track.category_name}" }, :descendant => { :tag => 'div', :attributes => { :class => 'track_stats' } } | 105 | assert_tag :tag => 'div', :attributes => { :class => "item_card category_#{@track.category_name}" }, :descendant => { :tag => 'div', :attributes => { :class => 'track_stats' } } |
112 | end | 106 | end |
113 | 107 | ||
114 | should 'render link to display more tracks in track list block' do | 108 | should 'render link to display more tracks in track list block' do |
115 | - @block = CommunityTrackPlugin::TrackCardListBlock.create!(:box => @profile.boxes.last) | 109 | + @block = CommunityTrackPlugin::TrackCardListBlock.create!(:box => @profile.boxes.first) |
116 | (@block.limit+1).times { |i| create_track("track#{i}", @profile) } | 110 | (@block.limit+1).times { |i| create_track("track#{i}", @profile) } |
117 | 111 | ||
118 | get :view_page, @step.url | 112 | get :view_page, @step.url |
@@ -120,7 +114,7 @@ class ContentViewerControllerTest < ActionController::TestCase | @@ -120,7 +114,7 @@ class ContentViewerControllerTest < ActionController::TestCase | ||
120 | end | 114 | end |
121 | 115 | ||
122 | should 'render link to show all tracks in track list block' do | 116 | should 'render link to show all tracks in track list block' do |
123 | - @block = CommunityTrackPlugin::TrackCardListBlock.create!(:box => @profile.boxes.last) | 117 | + @block = CommunityTrackPlugin::TrackCardListBlock.create!(:box => @profile.boxes.first) |
124 | @block.more_another_page = true | 118 | @block.more_another_page = true |
125 | @block.save! | 119 | @block.save! |
126 | 120 |
plugins/community_track/test/functional/community_track_plugin_environment_design_controller_test.rb
1 | -require File.dirname(__FILE__) + '/../test_helper' | 1 | +require_relative '../test_helper' |
2 | 2 | ||
3 | # Re-raise errors caught by the controller. | 3 | # Re-raise errors caught by the controller. |
4 | class EnvironmentDesignController; def rescue_action(e) raise e end; end | 4 | class EnvironmentDesignController; def rescue_action(e) raise e end; end |
plugins/community_track/test/functional/community_track_plugin_myprofile_controller_test.rb
1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
2 | -require File.dirname(__FILE__) + '/../../controllers/myprofile/community_track_plugin_myprofile_controller' | 1 | +require_relative '../test_helper' |
2 | +require_relative '../../controllers/myprofile/community_track_plugin_myprofile_controller' | ||
3 | 3 | ||
4 | # Re-raise errors caught by the controller. | 4 | # Re-raise errors caught by the controller. |
5 | class CommunityTrackPluginMyprofileController; def rescue_action(e) raise e end; end | 5 | class CommunityTrackPluginMyprofileController; def rescue_action(e) raise e end; end |
@@ -7,10 +7,6 @@ class CommunityTrackPluginMyprofileController; def rescue_action(e) raise e end; | @@ -7,10 +7,6 @@ class CommunityTrackPluginMyprofileController; def rescue_action(e) raise e end; | ||
7 | class CommunityTrackPluginMyprofileControllerTest < ActionController::TestCase | 7 | class CommunityTrackPluginMyprofileControllerTest < ActionController::TestCase |
8 | 8 | ||
9 | def setup | 9 | def setup |
10 | - @controller = CommunityTrackPluginMyprofileController.new | ||
11 | - @request = ActionController::TestRequest.new | ||
12 | - @response = ActionController::TestResponse.new | ||
13 | - | ||
14 | @profile = fast_create(Community) | 10 | @profile = fast_create(Community) |
15 | @track = create_track('track', @profile) | 11 | @track = create_track('track', @profile) |
16 | 12 |
plugins/community_track/test/functional/community_track_plugin_public_controller_test.rb
1 | -require File.dirname(__FILE__) + '/../test_helper' | ||
2 | -require File.dirname(__FILE__) + '/../../controllers/public/community_track_plugin_public_controller' | 1 | +require_relative '../test_helper' |
2 | +require_relative '../../controllers/public/community_track_plugin_public_controller' | ||
3 | 3 | ||
4 | # Re-raise errors caught by the controller. | 4 | # Re-raise errors caught by the controller. |
5 | class CommunityTrackPluginPublicController; def rescue_action(e) raise e end; end | 5 | class CommunityTrackPluginPublicController; def rescue_action(e) raise e end; end |
plugins/community_track/test/test_helper.rb
1 | -require File.dirname(__FILE__) + '/../../../test/test_helper' | 1 | +require_relative '../../../test/test_helper' |
2 | 2 | ||
3 | def create_track(name, profile) | 3 | def create_track(name, profile) |
4 | track = CommunityTrackPlugin::Track.new(:abstract => 'abstract', :body => 'body', :name => name, :profile => profile) | 4 | track = CommunityTrackPlugin::Track.new(:abstract => 'abstract', :body => 'body', :name => name, :profile => profile) |
plugins/community_track/test/unit/article_test.rb
plugins/community_track/test/unit/community_track_plugin/activation_job_test.rb
plugins/community_track/test/unit/community_track_plugin/step_helper_test.rb
plugins/community_track/test/unit/community_track_plugin/step_test.rb
plugins/community_track/test/unit/community_track_plugin/track_card_list_block_test.rb
plugins/community_track/test/unit/community_track_plugin/track_helper_test.rb
plugins/community_track/test/unit/community_track_plugin/track_list_block_test.rb
plugins/community_track/test/unit/community_track_plugin/track_test.rb
plugins/community_track/test/unit/community_track_plugin_test.rb
plugins/event/lib/event_plugin/event_block.rb
@@ -26,8 +26,8 @@ class EventPlugin::EventBlock < Block | @@ -26,8 +26,8 @@ class EventPlugin::EventBlock < Block | ||
26 | end | 26 | end |
27 | 27 | ||
28 | def events(user = nil) | 28 | def events(user = nil) |
29 | - events = events_source.events | ||
30 | - events = events.published.order('start_date') | 29 | + events = events_source.events.order('start_date') |
30 | + events = user.nil? ? events.public : events.display_filter(user,nil) | ||
31 | 31 | ||
32 | if future_only | 32 | if future_only |
33 | events = events.where('start_date >= ?', Date.today) | 33 | events = events.where('start_date >= ?', Date.today) |
@@ -0,0 +1 @@ | @@ -0,0 +1 @@ | ||
1 | +require_relative '../../../test/test_helper' |
plugins/event/test/unit/event_block_test.rb
1 | -require File.dirname(__FILE__) + '/../../../../test/test_helper' | 1 | +require_relative '../test_helper' |
2 | 2 | ||
3 | -class EventPlugin::EventBlockTest < ActiveSupport::TestCase | 3 | +class EventBlockTest < ActiveSupport::TestCase |
4 | 4 | ||
5 | def setup | 5 | def setup |
6 | @env = Environment.default | 6 | @env = Environment.default |
@@ -165,7 +165,7 @@ class EventPlugin::EventBlockTest < ActiveSupport::TestCase | @@ -165,7 +165,7 @@ class EventPlugin::EventBlockTest < ActiveSupport::TestCase | ||
165 | 165 | ||
166 | def visibility_content_test_from_a_profile(profile) | 166 | def visibility_content_test_from_a_profile(profile) |
167 | @block.box.owner = @env | 167 | @block.box.owner = @env |
168 | - ev = fast_create Event, :name => '2 de Julho', :profile_id => profile.id | 168 | + ev = Event.create!(:name => '2 de Julho', :profile => profile) |
169 | @block.all_env_events = true | 169 | @block.all_env_events = true |
170 | 170 | ||
171 | # Do not list event from private profile for non logged visitor | 171 | # Do not list event from private profile for non logged visitor |
plugins/event/test/unit/event_plugin_test.rb
plugins/lattes_curriculum/features/lattes_curriculum.feature
@@ -29,7 +29,7 @@ Feature: import lattes information | @@ -29,7 +29,7 @@ Feature: import lattes information | ||
29 | And I fill in "Lattes URL" with "http://lattes.cnpq.br/2864976228727880" | 29 | And I fill in "Lattes URL" with "http://lattes.cnpq.br/2864976228727880" |
30 | And I press "Save" | 30 | And I press "Save" |
31 | And I go to /profile/admin_user#lattes_tab | 31 | And I go to /profile/admin_user#lattes_tab |
32 | - Then I should see "Endereço para acessar este CV: http://lattes.cnpq.br/2864976228727880" | 32 | + Then I should see "Lattes" |
33 | 33 | ||
34 | Scenario: Don't show lattes informations for blank lattes urls | 34 | Scenario: Don't show lattes informations for blank lattes urls |
35 | Given I am on admin_user's control panel | 35 | Given I am on admin_user's control panel |
plugins/lattes_curriculum/lib/html_parser.rb
@@ -19,6 +19,8 @@ class Html_parser | @@ -19,6 +19,8 @@ class Html_parser | ||
19 | page = _("Lattes not found. Please, make sure the informed URL is correct.") | 19 | page = _("Lattes not found. Please, make sure the informed URL is correct.") |
20 | rescue Timeout::Error => e | 20 | rescue Timeout::Error => e |
21 | page = _("Lattes Platform is unreachable. Please, try it later.") | 21 | page = _("Lattes Platform is unreachable. Please, try it later.") |
22 | + rescue | ||
23 | + page = _("Could not import the lattes") | ||
22 | end | 24 | end |
23 | end | 25 | end |
24 | 26 |
plugins/lattes_curriculum/test/unit/html_parser_test.rb
@@ -12,13 +12,4 @@ class HtmlParserTest < ActiveSupport::TestCase | @@ -12,13 +12,4 @@ class HtmlParserTest < ActiveSupport::TestCase | ||
12 | should 'be not nil the instance' do | 12 | should 'be not nil the instance' do |
13 | assert_not_nil @parser | 13 | assert_not_nil @parser |
14 | end | 14 | end |
15 | - | ||
16 | - should 'be not nil the return get_html' do | ||
17 | - result = @parser.get_html("http://lattes.cnpq.br/2193972715230641") | ||
18 | - assert result.include?("Endereço para acessar este CV") | ||
19 | - end | ||
20 | - | ||
21 | - should 'inform that lattes was not found' do | ||
22 | - assert_equal "Lattes not found. Please, make sure the informed URL is correct.", @parser.get_html("http://lattes.cnpq.br/123") | ||
23 | - end | ||
24 | end | 15 | end |
plugins/sub_organizations/db/migrate/20150508153119_add_timestamp_to_relation.rb
@@ -2,5 +2,7 @@ class AddTimestampToRelation < ActiveRecord::Migration | @@ -2,5 +2,7 @@ class AddTimestampToRelation < ActiveRecord::Migration | ||
2 | def change | 2 | def change |
3 | add_column :sub_organizations_plugin_relations, :created_at, :datetime | 3 | add_column :sub_organizations_plugin_relations, :created_at, :datetime |
4 | add_column :sub_organizations_plugin_relations, :updated_at, :datetime | 4 | add_column :sub_organizations_plugin_relations, :updated_at, :datetime |
5 | + add_column :sub_organizations_plugin_approve_paternity_relations, :created_at, :datetime | ||
6 | + add_column :sub_organizations_plugin_approve_paternity_relations, :updated_at, :datetime | ||
5 | end | 7 | end |
6 | end | 8 | end |
@@ -0,0 +1,217 @@ | @@ -0,0 +1,217 @@ | ||
1 | +s/Alessandro Palmeira$/Alessandro Palmeira <alessandro.palmeira@gmail.com>/ | ||
2 | +s/Alessandro Palmeira <caio.csalgado@gmail.com>/Alessandro Palmeira <alessandro.palmeira@gmail.com>/ | ||
3 | +s/Alessandro Palmeira <diegoamc90@gmail.com>/Alessandro Palmeira <alessandro.palmeira@gmail.com>/ | ||
4 | +s/Alessandro Palmeira <jaodsilv@linux.ime.usp.br>/Alessandro Palmeira <alessandro.palmeira@gmail.com>/ | ||
5 | +s/Alessandro Palmeira <paulo@softwarelivre.org>/Alessandro Palmeira <alessandro.palmeira@gmail.com>/ | ||
6 | +s/Alessandro Palmeira <rr.manzo@gmail.com>/Alessandro Palmeira <alessandro.palmeira@gmail.com>/ | ||
7 | + | ||
8 | +s/analosnak <analosnak@gmail.com>/Ana Losnak <analosnak@gmail.com>/ | ||
9 | +s/^Ana Losnak$/Ana Losnak <analosnak@gmail.com>/ | ||
10 | + | ||
11 | +s/Andre Bernardes <andrebsguedes@gmail.com>/André Guedes <andrebsguedes@gmail.com>/ | ||
12 | +s/André Bernardes <andrebsguedes@gmail.com>/André Guedes <andrebsguedes@gmail.com>/ | ||
13 | +s/André Guedes <andrebsguedes@fedora.local>/André Guedes <andrebsguedes@gmail.com>/ | ||
14 | + | ||
15 | + | ||
16 | +s/Alex de Souza <campelo.al1@gmail.com>/Alex Campelo <campelo.al1@gmail.com>/ | ||
17 | +s/alcampelo <alcampelo@alcampelo.(none)>/Alex Campelo <campelo.al1@gmail.com>/ | ||
18 | +s/Alvaro Fernando <alvarofernandoms@gmail.com>/Álvaro Fernando <alvarofernandoms@gmail.com>/ | ||
19 | + | ||
20 | +s/athurmde@yahoo.com.br/arthurmde@yahoo.com.br/ | ||
21 | +s/^Antonio Terceiro$/Antonio Terceiro <terceiro@colivre.coop.br>/ | ||
22 | + | ||
23 | +s/Arhur Del Esposte/Arthur Del Esposte/ | ||
24 | +s/Arthur Del Esposte <arthurmde@yahoo.com.br>/Arthur Del Esposte <arthurmde@gmail.com>/ | ||
25 | + | ||
26 | +s/Aurélio A. Heckert/Aurelio A. Heckert/ | ||
27 | + | ||
28 | +s/Bráulio Bhavamitra <brauliobo@gmail.com>/Braulio Bhavamitra <braulio@eita.org.br>/ | ||
29 | +s/Braulio Bhavamitra <brauliobo@gmail.com>/Braulio Bhavamitra <braulio@eita.org.br>/ | ||
30 | + | ||
31 | +s/Carlos Andre <carlos.andre.souza@msn.com>/Carlos Andre de Souza <carlos.andre.souza@msn.com>/ | ||
32 | + | ||
33 | +s/^Caio Almeida$/Caio SBA <caio@colivre.coop.br>/ | ||
34 | + | ||
35 | +s/^Caio$/Caio Salgado <caio.csalgado@gmail.com>/ | ||
36 | +s/Caio <caio.csalgado@gmail.com>/Caio Salgado <caio.csalgado@gmail.com>/ | ||
37 | +s/Caio C. Salgado <alessandro.palmeira@gmail.com>/Caio Salgado <caio.csalgado@gmail.com>/ | ||
38 | +s/^Caio Salgado$/Caio Salgado <caio.csalgado@gmail.com>/ | ||
39 | +s/Caio Salgado <alessandro.palmeira@gmail.com>/Caio Salgado <caio.csalgado@gmail.com>/ | ||
40 | +s/Caio Salgado <diegoamc90@gmail.com>/Caio Salgado <caio.csalgado@gmail.com>/ | ||
41 | +s/Caio Salgado <jaodsilv@linux.ime.usp.br>/Caio Salgado <caio.csalgado@gmail.com>/ | ||
42 | +s/Caio Salgado <renanteruoc@gmail.com>/Caio Salgado <caio.csalgado@gmail.com>/ | ||
43 | + | ||
44 | +s/Carlos Morais$/Carlos Morais <carlos88morais@gmail.com>/ | ||
45 | +s/Carlos Morais <alessandro.palmeira@gmail.com>/Carlos Morais <carlos88morais@gmail.com>/ | ||
46 | +s/Carlos Morais <jaodsilv@linux.ime.usp.br>/Carlos Morais <carlos88morais@gmail.com>/ | ||
47 | +s/Carlos Morais <paulo@softwarelivre.org>/Carlos Morais <carlos88morais@gmail.com>/ | ||
48 | +s/Carlos Morais <terceiro@colivre.coop.br>/Carlos Morais <carlos88morais@gmail.com>/ | ||
49 | + | ||
50 | +s/Daniel Alves$/Daniel Alves <danpaulalves@gmail.com>/ | ||
51 | +s/Daniel Alves <alessandro.palmeira@gmail.com>/Daniel Alves <danpaulalves@gmail.com>/ | ||
52 | + | ||
53 | +s/Daniel Bucher$/Daniel Bucher <daniel.bucher88@gmail.com>/ | ||
54 | + | ||
55 | +s/daniel <dtygel@eita.org.br>/Daniel Tygel <dtygel@eita.org.br>/ | ||
56 | +s/dtygel <dtygel@gmail.com>/Daniel Tygel <dtygel@eita.org.br>/ | ||
57 | + | ||
58 | +/^Daniela Feitosa$/d | ||
59 | +s/DylanGuedes/Dylan Guedes/ | ||
60 | + | ||
61 | +s/Diego$/Diego Araujo <diegoamc90@gmail.com>/ | ||
62 | +s/diegoamc <diegoamc90@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
63 | +s/Diego Araujo$/Diego Araujo <diegoamc90@gmail.com>/ | ||
64 | +s/Diego Araújo$/Diego Araujo <diegoamc90@gmail.com>/ | ||
65 | +s/Diego Araujo <alessandro.palmeira@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
66 | +s/Diego Araújo <alessandro.palmeira@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
67 | +s/Diego Araujo <caio.csalgado@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
68 | +s/Diego Araújo <caio.csalgado@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
69 | +s/Diego Araújo <danpaulalves@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
70 | +s/Diego Araújo <diegoamc90@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
71 | +s/Diego Araújo <jaodsilv@linux.ime.usp.br>/Diego Araujo <diegoamc90@gmail.com>/ | ||
72 | +s/Diego Araújo <paulo@softwarelivre.org>/Diego Araujo <diegoamc90@gmail.com>/ | ||
73 | +s/Diego Araujo <renanteruoc@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
74 | +s/Diego Araújo <renanteruoc@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
75 | +s/Diego Araujo <rr.manzo@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
76 | +s/Diego Araújo <rr.manzo@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
77 | +s/Diego Martinez <diegoamc90@gmail.com>/Diego Araujo <diegoamc90@gmail.com>/ | ||
78 | + | ||
79 | +# no known email | ||
80 | +s/Eduardo Morais <alessandro.palmeira@gmail.com>/Eduardo Morais/ | ||
81 | +s/Eduardo Morais <carlos88morais@gmail.com>/Eduardo Morais/ | ||
82 | + | ||
83 | +s/Eduardo Passos <eduardo@risa.localdomain.localhost>/Eduardo Passos <eduardosteps@gmail.com>/ | ||
84 | + | ||
85 | +s/Evandro Jr <evandrojr@gmail.com>/Evandro Magalhaes Leite Junior <evandro.leite@serpro.gov.br>/ | ||
86 | +s/Evandro Junior <evandrojr@gmail.com>/Evandro Magalhaes Leite Junior <evandro.leite@serpro.gov.br>/ | ||
87 | + | ||
88 | +s/Fábio Teixeira <fabio1079@gmail.com>/Fabio Teixeira <fabio1079@gmail.com>/ | ||
89 | + | ||
90 | +s/Francisco Marcelo A. Lima Júnior <francisco.lima-junior@serpro.gov.br>/Francisco Marcelo de Araújo Lima Júnior <francisco.lima-junior@serpro.gov.br>/ | ||
91 | +s/Francisco Marcelo de Araujo Lima Junior <79350259591@serpro-1457614.(none)>/Francisco Marcelo de Araújo Lima Júnior <francisco.lima-junior@serpro.gov.br>/ | ||
92 | +s/Francisco Marcelo de Araújo Lima Júnior <maljunior@gmail.com>/Francisco Marcelo de Araújo Lima Júnior <francisco.lima-junior@serpro.gov.br>/ | ||
93 | + | ||
94 | + | ||
95 | +s/Gustavo Cruz <darksshades@hotmail.com>/Gustavo Jaruga <darksshades@gmail.com>/ | ||
96 | +s/Gustavo Jaruga <darksshades@hotmail.com>/Gustavo Jaruga <darksshades@gmail.com>/ | ||
97 | +s/Gust <darksshades@hotmail.com>/Gustavo Jaruga <darksshades@gmail.com>/ | ||
98 | + | ||
99 | +s/Guilherme Rojas <alessandro.palmeira@gmail.com>/Guilherme Rojas <guilhermehrojas@gmail.com>/ | ||
100 | +s/Guilherme Rojas <danpaulalves@gmail.com>/Guilherme Rojas <guilhermehrojas@gmail.com>/ | ||
101 | +s/Guilherme Rojas <diegoamc90@gmail.com>/Guilherme Rojas <guilhermehrojas@gmail.com>/ | ||
102 | + | ||
103 | +s/Hebert Douglas <hebertdougl@gmail>/Hebert Douglas <hebertdougl@gmail.com>/ | ||
104 | + | ||
105 | +s/Jefferson <diegoamc90@gmail.com>/Jefferson Fernandes <jeffs.fernandes@gmail.com>/ | ||
106 | +s/Jefferson Fernandes$/Jefferson Fernandes <jeffs.fernandes@gmail.com>/ | ||
107 | +s/Jefferson Fernandes <alessandro.palmeira@gmail.com>/Jefferson Fernandes <jeffs.fernandes@gmail.com>/ | ||
108 | +s/Jefferson Fernandes <caio.csalgado@gmail.com>/Jefferson Fernandes <jeffs.fernandes@gmail.com>/ | ||
109 | +s/Jefferson Fernandes <diegoamc90@gmail.com>/Jefferson Fernandes <jeffs.fernandes@gmail.com>/ | ||
110 | +s/Jefferson Fernandes <jaodsilv@linux.ime.usp.br>/Jefferson Fernandes <jeffs.fernandes@gmail.com>/ | ||
111 | +s/Jefferson Fernandes <rr.manzo@gmail.com>/Jefferson Fernandes <jeffs.fernandes@gmail.com>/ | ||
112 | + | ||
113 | +# no known email | ||
114 | +s/João Machini <diegoamc90@gmail.com>/João Machini/ | ||
115 | +s/João Machini <digoamc90@gmail.com>/João Machini/ | ||
116 | +s/João Machini <jaodsilv@linux.ime.usp.br>/João Machini/ | ||
117 | + | ||
118 | +s/João da Silva$/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
119 | +s/João da Silva <jaodsilv@linux.ime.usp.br>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
120 | +s/Joao M. M. da Silva$/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
121 | +s/João M. M. da Silva$/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
122 | +s/João M. M. da Silva <alessandro.palmeira@gmail.com>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
123 | +s/João M. M. da Silva <caio.csalgado@gmail.com>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
124 | +s/João M. M. da Silva <diegoamc90@gmail.com>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
125 | +s/Joao M. M. da Silva <jeffs.fernandes@gmail.com>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
126 | +s/João M. M. da Silva <paulo@softwarelivre.org>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
127 | +s/João M. M. da Silva <rr.manzo@gmail.com>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
128 | +s/João M. Miranda <jaodsilv@linux.ime.usp.br>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
129 | +s/Joao M. M. Silva$/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
130 | +s/João M. M. Silva$/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
131 | +s/João M. M. Silva <alessandro.palmeira@gmail.com>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
132 | +s/Joao M. M. Silva <jeffs.fernandes@gmail.com>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
133 | +s/João M. M. Silva <rr.manzo@gmail.com>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
134 | +s/João Marco Maciel da Silva/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
135 | +s/João <caio.csalgado@gmail.com>/João M. M. da Silva <jaodsilv@linux.ime.usp.br>/ | ||
136 | + | ||
137 | +s/José Pedro de Santana Neto <1jpsneto@gmail.com>/Jose Pedro <1jpsneto@gmail.com>/ | ||
138 | + | ||
139 | +s/Junior Silva <junior@bajor.localhost.localdomain>/Junior Silva <juniorsilva1001@gmail.com>/ | ||
140 | +s/Junior Silva <junior@sedeantigo.colivre.coop.br>/Junior Silva <juniorsilva1001@gmail.com>/ | ||
141 | +s/Junior Silva <juniorsilva7@juniorsilva-Aspire-5750Z.(none)>/Junior Silva <juniorsilva1001@gmail.com>/ | ||
142 | +s/Junior Silva <juniorsilva@colivre.coop.br>/Junior Silva <juniorsilva1001@gmail.com>/ | ||
143 | +s/juniorsilva <juniorsilva@QonoS.localhost.localdomain>/Junior Silva <juniorsilva1001@gmail.com>/ | ||
144 | + | ||
145 | +s/Larissa Reis <reiss.larissa@gmail.com>/Larissa Reis <larissa@colivre.coop.br>/ | ||
146 | + | ||
147 | +s/Leandro Nunes$/Leandro Nunes dos Santos <leandro.santos@serpro.gov.br>/ | ||
148 | +s/Leandro Nunes dos Santos <81665687568@serpro-1541727.Home>/Leandro Nunes dos Santos <leandro.santos@serpro.gov.br>/ | ||
149 | +s/Leandro Nunes dos Santos <81665687568@serpro-1541727.(none)>/Leandro Nunes dos Santos <leandro.santos@serpro.gov.br>/ | ||
150 | +s/Leandro Nunes dos Santos <leandronunes@gmail.com>/Leandro Nunes dos Santos <leandro.santos@serpro.gov.br>/ | ||
151 | + | ||
152 | +s/Lucas Melo <lucas@colivre.coop.br>/Lucas Melo <lucaspradomelo@gmail.com>/ | ||
153 | + | ||
154 | +s/Luciano <lucianopcbr@gmail.com>/Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>/ | ||
155 | +s/Luciano Prestes <lucianopcbr@gmail.com>/Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>/ | ||
156 | +s/Luciano Prestes Cavacanti <lucianopcbr@gmail.com>/Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>/ | ||
157 | + | ||
158 | +s/Marcos da Silva Ramos <ms.ramos@outlook.com>/Marcos Ramos <ms.ramos@outlook.com>/ | ||
159 | +s/Marcos Ramos <ms.ramos@outlook.com$/Marcos Ramos <ms.ramos@outlook.com>/ | ||
160 | +s/Marcos <marcos.rpj2@gmail.com>/Marcos Ronaldo <marcos.rpj2@gmail.com>/ | ||
161 | + | ||
162 | +s/Parley Martins <parley@outlook.com>/Parley Martins <parleypachecomartins@gmail.com>/ | ||
163 | + | ||
164 | +s/Paulo Meirelles$/Paulo Meirelles <paulo@softwarelivre.org>/ | ||
165 | +s/Paulo Meirelles <alessandro.palmeira@gmail.com>/Paulo Meirelles <paulo@softwarelivre.org>/ | ||
166 | +s/Paulo Meirelles <carlos88morais@gmail.com>/Paulo Meirelles <paulo@softwarelivre.org>/ | ||
167 | +s/Paulo Meirelles <diegoamc90@gmail.com>/Paulo Meirelles <paulo@softwarelivre.org>/ | ||
168 | +s/Paulo Meirelles <jaodsilv@linux.ime.usp.br>/Paulo Meirelles <paulo@softwarelivre.org>/ | ||
169 | +s/Paulo Meirelles <renanteruoc@gmail.com>/Paulo Meirelles <paulo@softwarelivre.org>/ | ||
170 | +s/Paulo Meirelles <rr.manzo@gmail.com>/Paulo Meirelles <paulo@softwarelivre.org>/ | ||
171 | +s/Paulo Meirelles <terceiro@colivre.coop.br>/Paulo Meirelles <paulo@softwarelivre.org>/ | ||
172 | + | ||
173 | +# no known email | ||
174 | +s/Pedro$/Pedro Leal/ | ||
175 | +s/Pedro <caio.csalgado@gmail.com>/Pedro Leal/ | ||
176 | +s/Pedro Leal <caio.csalgado@gmail.com>/Pedro Leal/ | ||
177 | +s/Pedro Leal <carlos88morais@gmail.com>/Pedro Leal/ | ||
178 | +s/Pedro Leal <diegoamc90@gmail.com>/Pedro Leal/ | ||
179 | +s/Pedro Leal <jaodsilv@linux.ime.usp.br>/Pedro Leal/ | ||
180 | + | ||
181 | +s/Rafael Manzo$/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
182 | +s/Rafael Manzo <alessandro.palmeira@gmail.com>/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
183 | +s/Rafael Manzo <caio.csalgado@gmail.com>/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
184 | +s/Rafael Manzo <diegoamc90@gmail.com>/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
185 | +s/Rafael Manzo <jaodsilv@linux.ime.usp.br>/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
186 | +s/Rafael Manzo <jeffs.fernandes@gmail.com>/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
187 | +s/Rafael Manzo <paulo@softwarelivre.org>/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
188 | +s/Rafael Manzo <renanteruoc@gmail.com>/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
189 | +s/Rafael Manzo <rr.manzo@gmail.com>/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
190 | +s/Rafael Reggiani Manzo$/Rafael Reggiani Manzo <rr.manzo@gmail.com>/ | ||
191 | + | ||
192 | +s/Renan <renanteruoc@gmail.com>/Renan Teruo <renanteruoc@gmail.com>/ | ||
193 | +s/Renan Teruo$/Renan Teruo <renanteruoc@gmail.com>/ | ||
194 | +s/Renan Teruo <alessandro.palmeira@gmail.com>/Renan Teruo <renanteruoc@gmail.com>/ | ||
195 | +s/Renan Teruoc$/Renan Teruo <renanteruoc@gmail.com>/ | ||
196 | +s/Renan Teruo <caio.csalgado@gmail.com>/Renan Teruo <renanteruoc@gmail.com>/ | ||
197 | +s/Renan Teruo <caio.salgado@gmail.com>/Renan Teruo <renanteruoc@gmail.com>/ | ||
198 | +s/Renan Teruo <diegoamc90@gmail.com>/Renan Teruo <renanteruoc@gmail.com>/ | ||
199 | +s/Renan Teruo <jaodsilv@linux.ime.usp.br>/Renan Teruo <renanteruoc@gmail.com>/ | ||
200 | + | ||
201 | +s/Rodrigo Souto$/Rodrigo Souto <rodrigo@colivre.coop.br>/ | ||
202 | + | ||
203 | +/root <root@debian.sdr.serpro>/d | ||
204 | + | ||
205 | +s/Tales Martins <tales.martins@gmail.com>/Tallys Martins <tallysmartins@yahoo.com.br>/ | ||
206 | +s/Tallys Martins <tallysmartins@gmail.com>/Tallys Martins <tallysmartins@yahoo.com.br>/ | ||
207 | +s/tallys <tallys@tallys>/Tallys Martins <tallysmartins@yahoo.com.br>/ | ||
208 | +s/tallys <tallys@tallys.(none)>/Tallys Martins <tallysmartins@yahoo.com.br>/ | ||
209 | +s/Thiago Ribeiro <thiagitosouza@gmail.com>/Thiago Ribeiro <thiagitosouza@hotmail.com>/ | ||
210 | + | ||
211 | +s/Valéssio Brito <contato@valessiobrito.com.br>/Valessio Brito <contato@valessiobrito.com.br>/ | ||
212 | +s/Valessio Brito <contato@valessiobrito.info>/Valessio Brito <contato@valessiobrito.com.br>/ | ||
213 | +s/Valessio Brito <valessio@gmail.com>/Valessio Brito <contato@valessiobrito.com.br>/ | ||
214 | +/Visita <visita@debian.(none)>/d | ||
215 | +s/vfcosta <vfcosta@gmail.com>/Victor Costa <vfcosta@gmail.com>/ | ||
216 | +s/Victor Carvalho <victorhugodf.ac@gmail.com>/Victor Hugo Alves de Carvalho <victorhugodf.ac@gmail.com>/ | ||
217 | + |
script/quick-start
@@ -61,6 +61,8 @@ setup_rubygems_path() { | @@ -61,6 +61,8 @@ setup_rubygems_path() { | ||
61 | fi | 61 | fi |
62 | } | 62 | } |
63 | 63 | ||
64 | +# change current directory to the noosfero's root | ||
65 | +cd "$(dirname $0)/../" | ||
64 | 66 | ||
65 | force_install=false | 67 | force_install=false |
66 | if test "$1" = '--force-install'; then | 68 | if test "$1" = '--force-install'; then |
test/unit/api/articles_test.rb
@@ -348,4 +348,75 @@ class ArticlesTest < ActiveSupport::TestCase | @@ -348,4 +348,75 @@ class ArticlesTest < ActiveSupport::TestCase | ||
348 | assert_equal [0, 1, 1], [a1.reload.hits, a2.reload.hits, a3.reload.hits] | 348 | assert_equal [0, 1, 1], [a1.reload.hits, a2.reload.hits, a3.reload.hits] |
349 | end | 349 | end |
350 | 350 | ||
351 | + | ||
352 | + should 'list all events of a community in a given category' do | ||
353 | + co = Community.create(identifier: 'my-community', name: 'name-my-community') | ||
354 | + c1 = Category.create(environment: Environment.default, name: 'my-category') | ||
355 | + c2 = Category.create(environment: Environment.default, name: 'dont-show-me-this-category') | ||
356 | + e1 = fast_create(Event, :profile_id => co.id) | ||
357 | + e2 = fast_create(Event, :profile_id => co.id) | ||
358 | + e1.categories << c1 | ||
359 | + e2.categories << c2 | ||
360 | + e1.save! | ||
361 | + e2.save! | ||
362 | + params['content_type']='Event' | ||
363 | + get "api/v1/communities/#{co.id}/articles?#{params.to_query}" | ||
364 | + json = JSON.parse(last_response.body) | ||
365 | + assert_equal json['articles'].count, 2 | ||
366 | + end | ||
367 | + | ||
368 | + should 'list a event of a community in a given category' do | ||
369 | + co = Community.create(identifier: 'my-community', name: 'name-my-community') | ||
370 | + c1 = Category.create(environment: Environment.default, name: 'my-category') | ||
371 | + c2 = Category.create(environment: Environment.default, name: 'dont-show-me-this-category') | ||
372 | + e1 = fast_create(Event, :profile_id => co.id) | ||
373 | + e2 = fast_create(Event, :profile_id => co.id) | ||
374 | + e1.categories << c1 | ||
375 | + e2.categories << c2 | ||
376 | + e1.save! | ||
377 | + e2.save! | ||
378 | + params['categories_ids[]']=c1.id | ||
379 | + params['content_type']='Event' | ||
380 | + get "api/v1/communities/#{co.id}/articles?#{params.to_query}" | ||
381 | + json = JSON.parse(last_response.body) | ||
382 | + #should show only one article, since the other not in the same category | ||
383 | + assert_equal 1, json['articles'].count | ||
384 | + assert_equal e1.id, json['articles'][0]['id'] | ||
385 | + end | ||
386 | + | ||
387 | + should 'list events of a community in a given 2 categories' do | ||
388 | + co = Community.create(identifier: 'my-community', name: 'name-my-community') | ||
389 | + c1 = Category.create(environment: Environment.default, name: 'my-category') | ||
390 | + c2 = Category.create(environment: Environment.default, name: 'dont-show-me-this-category') | ||
391 | + e1 = fast_create(Event, :profile_id => co.id) | ||
392 | + e2 = fast_create(Event, :profile_id => co.id) | ||
393 | + e1.categories << c1 | ||
394 | + e2.categories << c2 | ||
395 | + e1.save! | ||
396 | + e2.save! | ||
397 | + params['content_type']='Event' | ||
398 | + params['categories_ids'] = [c1.id, c2.id] | ||
399 | + get "api/v1/communities/#{co.id}/articles?#{params.to_query}" | ||
400 | + json = JSON.parse(last_response.body) | ||
401 | + assert_equal json['articles'].count, 2 | ||
402 | + end | ||
403 | + | ||
404 | + should 'Show 2 events since it uses an IN operator for category instead of an OR' do | ||
405 | + co = Community.create(identifier: 'my-community', name: 'name-my-community') | ||
406 | + c1 = Category.create(environment: Environment.default, name: 'my-category') | ||
407 | + c2 = Category.create(environment: Environment.default, name: 'dont-show-me-this-category') | ||
408 | + c3 = Category.create(environment: Environment.default, name: 'extra-category') | ||
409 | + e1 = fast_create(Event, :profile_id => co.id) | ||
410 | + e2 = fast_create(Event, :profile_id => co.id) | ||
411 | + e1.categories << c1 | ||
412 | + e2.categories << c2 | ||
413 | + e1.save! | ||
414 | + e2.save! | ||
415 | + params['content_type']='Event' | ||
416 | + params['categories_ids'] = [c1.id, c2.id, c3.id] | ||
417 | + get "api/v1/communities/#{co.id}/articles?#{params.to_query}" | ||
418 | + json = JSON.parse(last_response.body) | ||
419 | + assert_equal json['articles'].count, 2 | ||
420 | + end | ||
421 | + | ||
351 | end | 422 | end |
test/unit/article_test.rb
@@ -1971,6 +1971,19 @@ class ArticleTest < ActiveSupport::TestCase | @@ -1971,6 +1971,19 @@ class ArticleTest < ActiveSupport::TestCase | ||
1971 | assert_equal [a], Article.display_filter(user, p) | 1971 | assert_equal [a], Article.display_filter(user, p) |
1972 | end | 1972 | end |
1973 | 1973 | ||
1974 | + should 'display_filter show person private content to friends when no profile is passed as parameter' do | ||
1975 | + user = create_user('someuser').person | ||
1976 | + p = fast_create(Person) | ||
1977 | + user.add_friend(p) | ||
1978 | + user.stubs(:has_permission?).with(:view_private_content, p).returns(false) | ||
1979 | + Article.delete_all | ||
1980 | + a = fast_create(Article, :published => false, :show_to_followers => true, :profile_id => p.id) | ||
1981 | + fast_create(Article, :published => false, :show_to_followers => false, :profile_id => p.id) | ||
1982 | + fast_create(Article, :published => false, :show_to_followers => false, :profile_id => p.id) | ||
1983 | + assert_equal [a], Article.display_filter(user, nil) | ||
1984 | + end | ||
1985 | + | ||
1986 | + | ||
1974 | should 'display_filter show community private content to members' do | 1987 | should 'display_filter show community private content to members' do |
1975 | user = create_user('someuser').person | 1988 | user = create_user('someuser').person |
1976 | p = fast_create(Community) | 1989 | p = fast_create(Community) |