Commit 1b60c137d8c3a559c74ee157265278f83bcfd529

Authored by Leandro Santos
2 parents 96ba5c75 7eb15321

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 19 - libsqlite3-dev
20 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 22 before_script:
30 23 - mkdir -p tmp/pids log
31 24 - bundle check || bundle install
... ...
AUTHORS.md
  1 +This list is automatically generated at release time. Please do not change it.
  2 +
1 3 If you are not listed here, but should be, please write to the noosfero mailing
2 4 list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev
3 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 8 Developers
7 9 ==========
8 10  
  11 +Ábner Silva de Oliveira <abner.oliveira@serpro.gov.br>
9 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 13 Alessandro Palmeira <alessandro.palmeira@gmail.com>
  14 +Alex Campelo <campelo.al1@gmail.com>
  15 +Álvaro Fernando <alvarofernandoms@gmail.com>
41 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 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 20 Antonio Terceiro <terceiro@colivre.coop.br>
49 21 Arthur Del Esposte <arthurmde@gmail.com>
50   -Arthur Del Esposte <arthurmde@yahoo.com.br>
51 22 Athos Ribeiro <athoscribeiro@gmail.com>
52 23 Aurelio A. Heckert <aurelio@colivre.coop.br>
53 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 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 26 Caio Salgado <caio.csalgado@gmail.com>
  27 +Caio SBA <caio@colivre.coop.br>
78 28 Caio Tiago Oliveira <caiotiago@colivre.coop.br>
79   -Caio, Pedro <caio.csalgado@gmail.com>
80 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 30 Carlos Morais <carlos88morais@gmail.com>
86 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 35 Daniel Bucher <daniel.bucher88@gmail.com>
97 36 Daniel Cunha <daniel@colivre.coop.br>
98   -Daniela Soares Feitosa <danielafeitosa@colivre.coop.br>
  37 +Daniel Tygel <dtygel@eita.org.br>
99 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 42 Eduardo Passos <eduardosteps@gmail.com>
129 43 Eduardo Tourinho Edington <eduardo.edington@serpro.gov.br>
130 44 Eduardo Vital <vitaldu@gmail.com>
131   -Evandro Jr <evandrojr@gmail.com>
132   -Evandro Junior <evandrojr@gmail.com>
133 45 Evandro Magalhaes Leite Junior <evandro.leite@serpro.gov.br>
134 46 Fabio Teixeira <fabio1079@gmail.com>
135 47 FAMMA TV NOTICIAS MEDIOS DE CO <revistafammatvmusic.oficial@gmail.com>
136   -Fabio Teixeira <fabio1079@gmail.com>
137 48 Fernanda Lopes <nanda.listas+psl@gmail.com>
138 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 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 51 Gabriela Navarro <navarro1703@gmail.com>
144 52 Gonzalo Exequiel Pedone <hipersayan.x@gmail.com>
145 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 57 Hebert Douglas <hebertdougl@gmail.com>
148 58 Hugo Melo <hugo@riseup.net>
  59 +Iolane Andrade <andrade.icaa@gmail.com>
149 60 Isaac Canan <isaac@intelletto.com.br>
150 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 66 Joenio Costa <joenio@colivre.coop.br>
158   -Jose Pedro <1jpsneto@gmail.com>
159 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 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 70 Keilla Menezes <keilla@colivre.coop.br>
193 71 Larissa Reis <larissa@colivre.coop.br>
194   -Larissa Reis <reiss.larissa@gmail.com>
195 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 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 75 LinguÁgil 2010 <linguagil.bahia@gmail.com>
  76 +Lucas Couto <loc.unb@gmail.com>
201 77 Lucas Kanashiro <kanashiro.duarte@gmail.com>
202   -Lucas Melo <lucas@colivre.coop.br>
203 78 Lucas Melo <lucaspradomelo@gmail.com>
204   -Luciano <lucianopcbr@gmail.com>
205   -Luciano Prestes Cavacanti <lucianopcbr@gmail.com>
206 79 Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
207 80 Luis David Aguilar Carlos <ludwig9003@gmail.com>
208 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 83 Marcos Ramos <ms.ramos@outlook.com>
  84 +Marcos Ronaldo <marcos.rpj2@gmail.com>
  85 +Mariel Zasso <noosfero-br@listas.softwarelivre.org>
213 86 Martín Olivera <molivera@solar.org.ar>
  87 +Matheus Faria <matheus.sousa.faria@gmail.com>
214 88 Maurilio Atila <cabelotaina@gmail.com>
  89 +M for Momo <mo@rtnp.org>
215 90 Michal Čihař <michal@cihar.com>
216 91 Michel Felipe <mfelipeof@gmail.com>
217 92 Moises Machado <moises@colivre.coop.br>
218   -Nanda Lopes <nanda.listas+psl@gmail.com>
219 93 Naíla Alves <naila@colivre.coop.br>
  94 +Nanda Lopes <nanda.listas+psl@gmail.com>
220 95 Niemand Jedermann <predatorix@web.de>
221 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 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 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 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 103 Rafael Reggiani Manzo <rr.manzo@gmail.com>
242 104 Raphaël Rousseau <raph@r4f.org>
243   -Raquel <rcordioli@gmail.com>
244 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 110 Rodrigo Souto <rodrigo@colivre.coop.br>
253 111 Ronny Kursawe <kursawe.ronny@googlemail.com>
254 112 Samuel R. C. Vale <srcvale@holoscopio.com>
255   -TWS <tablettws@gmail.com>
256   -Tallys Martins <tallysmartins@gmail.com>
257 113 Tallys Martins <tallysmartins@yahoo.com.br>
258 114 Thiago Casotti <thiago.casotti@uol.com.br>
  115 +Thiago Kairala <thiagor.kairala@gmail.com>
259 116 Thiago Ribeiro <thiagitosouza@hotmail.com>
260 117 Thiago Zoroastro <thiago.zoroastro@bol.com.br>
261 118 Tuux <tuxa@galaxie.eu.org>
  119 +TWS <tablettws@gmail.com>
262 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 121 Victor Costa <vfcosta@gmail.com>
267 122 Victor Hugo Alves de Carvalho <victorhugodf.ac@gmail.com>
268 123 Vinicius Cubas Brand <viniciuscb@gmail.com>
269   -Visita <visita@debian.(none)>
  124 +Wilton Rodrigues <braynwilton@gmail.com>
270 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 127 Ideas, specifications and incentive
285 128 ===================================
... ...
Gemfile
... ... @@ -19,11 +19,13 @@ gem &#39;gettext&#39;, &#39;~&gt; 2.2.1&#39;, :require =&gt; false
19 19 gem 'locale', '~> 2.0.5'
20 20 gem 'whenever', :require => false
21 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 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 29 gem 'rack-cors'
28 30 gem 'rack-contrib'
29 31 gem 'liquid', '~> 3.0.3'
... ... @@ -32,8 +34,7 @@ gem &#39;liquid&#39;, &#39;~&gt; 3.0.3&#39;
32 34 # FIXME list here all actual dependencies (i.e. the ones in debian/control),
33 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 39 # asset pipeline
39 40 gem 'uglifier', '>= 1.0.3'
... ...
app/models/article.rb
... ... @@ -510,9 +510,9 @@ class Article &lt; ActiveRecord::Base
510 510 where(
511 511 [
512 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 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 11 #
12 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 16 create_table "abuse_reports", :force => true do |t|
17 17 t.integer "reporter_id"
... ... @@ -48,6 +48,18 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
48 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 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 63 create_table "article_privacy_exceptions", :id => false, :force => true do |t|
52 64 t.integer "article_id"
53 65 t.integer "person_id"
... ... @@ -75,8 +87,8 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
75 87 t.integer "comments_count"
76 88 t.boolean "advertise", :default => true
77 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 92 t.integer "children_count", :default => 0
81 93 t.boolean "accept_comments", :default => true
82 94 t.integer "reference_article_id"
... ... @@ -127,8 +139,8 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
127 139 t.integer "comments_count", :default => 0
128 140 t.boolean "advertise", :default => true
129 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 144 t.integer "children_count", :default => 0
133 145 t.boolean "accept_comments", :default => true
134 146 t.integer "reference_article_id"
... ... @@ -151,6 +163,8 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
151 163 t.integer "author_id"
152 164 t.integer "created_by_id"
153 165 t.boolean "show_to_followers", :default => true
  166 + t.integer "sash_id"
  167 + t.integer "level", :default => 0
154 168 end
155 169  
156 170 add_index "articles", ["comments_count"], :name => "index_articles_on_comments_count"
... ... @@ -177,6 +191,17 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
177 191 add_index "articles_categories", ["article_id"], :name => "index_articles_categories_on_article_id"
178 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 205 create_table "blocks", :force => true do |t|
181 206 t.string "title"
182 207 t.integer "box_id"
... ... @@ -272,8 +297,10 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
272 297 t.string "referrer"
273 298 t.text "settings"
274 299 t.integer "paragraph_id"
  300 + t.string "paragraph_uuid"
275 301 end
276 302  
  303 + add_index "comments", ["paragraph_uuid"], :name => "index_comments_on_paragraph_uuid"
277 304 add_index "comments", ["source_id", "spam"], :name => "index_comments_on_source_id_and_spam"
278 305  
279 306 create_table "contact_lists", :force => true do |t|
... ... @@ -313,6 +340,17 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
313 340 add_index "domains", ["owner_id", "owner_type", "is_default"], :name => "index_domains_on_owner_id_and_owner_type_and_is_default"
314 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 354 create_table "environments", :force => true do |t|
317 355 t.string "name"
318 356 t.string "contact_email"
... ... @@ -332,6 +370,7 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
332 370 t.string "default_language"
333 371 t.string "noreply_email"
334 372 t.string "redirection_after_signup", :default => "keep_on_same_page"
  373 + t.text "send_email_plugin_allow_to"
335 374 t.string "date_format", :default => "month_name_with_year"
336 375 end
337 376  
... ... @@ -368,6 +407,17 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
368 407 add_index "friendships", ["person_id", "friend_id"], :name => "index_friendships_on_person_id_and_friend_id"
369 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 421 create_table "images", :force => true do |t|
372 422 t.integer "parent_id"
373 423 t.string "content_type"
... ... @@ -424,6 +474,46 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
424 474 t.datetime "updated_at"
425 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 517 create_table "national_region_types", :force => true do |t|
428 518 t.string "name"
429 519 end
... ... @@ -440,6 +530,15 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
440 530 add_index "national_regions", ["name"], :name => "name_index"
441 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 542 create_table "price_details", :force => true do |t|
444 543 t.decimal "price", :default => 0.0
445 544 t.integer "product_id"
... ... @@ -547,15 +646,37 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
547 646 t.boolean "allow_members_to_invite", :default => true
548 647 t.boolean "invite_friends_only", :default => false
549 648 t.boolean "secret", :default => false
  649 + t.integer "sash_id"
  650 + t.integer "level", :default => 0
550 651 end
551 652  
552 653 add_index "profiles", ["activities_count"], :name => "index_profiles_on_activities_count"
553 654 add_index "profiles", ["created_at"], :name => "index_profiles_on_created_at"
  655 + add_index "profiles", ["enabled"], :name => "index_profiles_on_enabled"
554 656 add_index "profiles", ["environment_id"], :name => "index_profiles_on_environment_id"
555 657 add_index "profiles", ["friends_count"], :name => "index_profiles_on_friends_count"
556 658 add_index "profiles", ["identifier"], :name => "index_profiles_on_identifier"
557 659 add_index "profiles", ["members_count"], :name => "index_profiles_on_members_count"
558 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 681 create_table "qualifier_certifiers", :force => true do |t|
561 682 t.integer "qualifier_id"
... ... @@ -597,6 +718,12 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
597 718 t.boolean "is_global"
598 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 727 create_table "roles", :force => true do |t|
601 728 t.string "name"
602 729 t.string "key"
... ... @@ -606,6 +733,11 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
606 733 t.integer "profile_id"
607 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 741 create_table "scraps", :force => true do |t|
610 742 t.text "content"
611 743 t.integer "sender_id"
... ... @@ -684,7 +816,7 @@ ActiveRecord::Schema.define(:version =&gt; 20150603182105) do
684 816 create_table "tasks", :force => true do |t|
685 817 t.text "data"
686 818 t.integer "status"
687   - t.date "end_date"
  819 + t.datetime "end_date"
688 820 t.integer "requestor_id"
689 821 t.integer "target_id"
690 822 t.string "code", :limit => 40
... ...
lib/noosfero/api/helpers.rb
... ... @@ -159,12 +159,13 @@
159 159 end
160 160  
161 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 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 169 end
169 170  
170 171 def select_filtered_collection_of(object, method, params)
... ...
lib/tasks/release.rake
... ... @@ -53,6 +53,8 @@ namespace :noosfero do
53 53 end
54 54  
55 55 AUTHORS_HEADER = <<EOF
  56 +This list is automatically generated at release time. Please do not change it.
  57 +
56 58 If you are not listed here, but should be, please write to the noosfero mailing
57 59 list: http://listas.softwarelivre.org/cgi-bin/mailman/listinfo/noosfero-dev
58 60 (this list requires subscription to post, but since you are an author of
... ... @@ -82,7 +84,7 @@ EOF
82 84 begin
83 85 File.open("AUTHORS.md", 'w') do |output|
84 86 output.puts AUTHORS_HEADER
85   - output.puts `git log --no-merges --pretty=format:'%aN <%aE>' | sort | uniq`
  87 + output.puts `./script/authors`
86 88 output.puts AUTHORS_FOOTER
87 89 end
88 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 1 class CommunityTrackPluginMyprofileController < MyProfileController
2   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
3 2  
4 3 before_filter :allow_edit_track, :only => :save_order
5 4  
... ...
plugins/community_track/controllers/public/community_track_plugin_public_controller.rb
1 1 class CommunityTrackPluginPublicController < PublicController
2   - append_view_path File.join(File.dirname(__FILE__) + '/../../views')
3 2  
4 3 no_design_blocks
5 4  
... ...
plugins/community_track/lib/community_track_plugin/track.rb
... ... @@ -84,7 +84,8 @@ class CommunityTrackPlugin::Track &lt; Folder
84 84  
85 85 def category_name
86 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 89 end
89 90  
90 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 3 # Re-raise errors caught by the controller.
4 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 4 class ContentViewerControllerTest < ActionController::TestCase
11 5  
12 6 def setup
... ... @@ -87,32 +81,32 @@ class ContentViewerControllerTest &lt; ActionController::TestCase
87 81 end
88 82  
89 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 85 get :view_page, @step.url
92 86 assert_tag :tag => 'div', :attributes => { :class => 'track_list', :id => "track_list_#{@block.id}" }
93 87 end
94 88  
95 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 91 get :view_page, @step.url
98 92 assert_tag :tag => 'div', :attributes => { :class => 'track_list', :id => "track_list_#{@block.id}" }
99 93 end
100 94  
101 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 97 get :view_page, @step.url
104 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 99 end
106 100  
107 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 103 get :view_page, @step.url
110 104 assert_tag :tag => 'div', :attributes => { :class => "item_card category_#{@track.category_name}" }, :descendant => { :tag => 'div', :attributes => { :class => 'track_content' } }
111 105 assert_tag :tag => 'div', :attributes => { :class => "item_card category_#{@track.category_name}" }, :descendant => { :tag => 'div', :attributes => { :class => 'track_stats' } }
112 106 end
113 107  
114 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 110 (@block.limit+1).times { |i| create_track("track#{i}", @profile) }
117 111  
118 112 get :view_page, @step.url
... ... @@ -120,7 +114,7 @@ class ContentViewerControllerTest &lt; ActionController::TestCase
120 114 end
121 115  
122 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 118 @block.more_another_page = true
125 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 3 # Re-raise errors caught by the controller.
4 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 4 # Re-raise errors caught by the controller.
5 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 7 class CommunityTrackPluginMyprofileControllerTest < ActionController::TestCase
8 8  
9 9 def setup
10   - @controller = CommunityTrackPluginMyprofileController.new
11   - @request = ActionController::TestRequest.new
12   - @response = ActionController::TestResponse.new
13   -
14 10 @profile = fast_create(Community)
15 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 4 # Re-raise errors caught by the controller.
5 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 3 def create_track(name, profile)
4 4 track = CommunityTrackPlugin::Track.new(:abstract => 'abstract', :body => 'body', :name => name, :profile => profile)
... ...
plugins/community_track/test/unit/article_test.rb
1   -require File.dirname(__FILE__) + '/../test_helper'
  1 +require_relative '../test_helper'
2 2  
3 3 class ArticleTest < ActiveSupport::TestCase
4 4  
... ...
plugins/community_track/test/unit/community_track_plugin/activation_job_test.rb
1   -require File.dirname(__FILE__) + '/../../test_helper'
  1 +require_relative '../../test_helper'
2 2  
3 3 class ActivationJobTest < ActiveSupport::TestCase
4 4  
... ...
plugins/community_track/test/unit/community_track_plugin/step_helper_test.rb
1   -require File.dirname(__FILE__) + '/../../test_helper'
  1 +require_relative '../../test_helper'
2 2  
3 3 class StepHelperTest < ActiveSupport::TestCase
4 4  
... ...
plugins/community_track/test/unit/community_track_plugin/step_test.rb
1   -require File.dirname(__FILE__) + '/../../test_helper'
  1 +require_relative '../../test_helper'
2 2  
3 3 module CommunityHubPlugin; class Hub < Article; end; end
4 4  
... ...
plugins/community_track/test/unit/community_track_plugin/track_card_list_block_test.rb
1   -require File.dirname(__FILE__) + '/../../test_helper'
  1 +require_relative '../../test_helper'
2 2  
3 3 class TrackCardListBlockTest < ActiveSupport::TestCase
4 4  
... ...
plugins/community_track/test/unit/community_track_plugin/track_helper_test.rb
1   -require File.dirname(__FILE__) + '/../../test_helper'
  1 +require_relative '../../test_helper'
2 2  
3 3 class TrackHelperTest < ActiveSupport::TestCase
4 4  
... ...
plugins/community_track/test/unit/community_track_plugin/track_list_block_test.rb
1   -require File.dirname(__FILE__) + '/../../test_helper'
  1 +require_relative '../../test_helper'
2 2  
3 3 class TrackListBlockTest < ActiveSupport::TestCase
4 4  
... ...
plugins/community_track/test/unit/community_track_plugin/track_test.rb
1   -require File.dirname(__FILE__) + '/../../test_helper'
  1 +require_relative '../../test_helper'
2 2  
3 3 class TrackTest < ActiveSupport::TestCase
4 4  
... ...
plugins/community_track/test/unit/community_track_plugin_test.rb
1   -require File.dirname(__FILE__) + '/../test_helper'
  1 +require_relative '../test_helper'
2 2  
3 3 class CommunityTrackPluginTest < ActiveSupport::TestCase
4 4  
... ...
plugins/event/lib/event_plugin/event_block.rb
... ... @@ -26,8 +26,8 @@ class EventPlugin::EventBlock &lt; Block
26 26 end
27 27  
28 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 32 if future_only
33 33 events = events.where('start_date >= ?', Date.today)
... ...
plugins/event/test/test_helper.rb 0 → 100644
... ... @@ -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 5 def setup
6 6 @env = Environment.default
... ... @@ -165,7 +165,7 @@ class EventPlugin::EventBlockTest &lt; ActiveSupport::TestCase
165 165  
166 166 def visibility_content_test_from_a_profile(profile)
167 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 169 @block.all_env_events = true
170 170  
171 171 # Do not list event from private profile for non logged visitor
... ...
plugins/event/test/unit/event_plugin_test.rb
1   -require File.dirname(__FILE__) + '/../../../../test/test_helper'
  1 +require_relative '../test_helper'
2 2  
3 3 class EventPluginTest < ActiveSupport::TestCase
4 4  
... ...
plugins/lattes_curriculum/features/lattes_curriculum.feature
... ... @@ -29,7 +29,7 @@ Feature: import lattes information
29 29 And I fill in "Lattes URL" with "http://lattes.cnpq.br/2864976228727880"
30 30 And I press "Save"
31 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 34 Scenario: Don't show lattes informations for blank lattes urls
35 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 19 page = _("Lattes not found. Please, make sure the informed URL is correct.")
20 20 rescue Timeout::Error => e
21 21 page = _("Lattes Platform is unreachable. Please, try it later.")
  22 + rescue
  23 + page = _("Could not import the lattes")
22 24 end
23 25 end
24 26  
... ...
plugins/lattes_curriculum/test/unit/html_parser_test.rb
... ... @@ -12,13 +12,4 @@ class HtmlParserTest &lt; ActiveSupport::TestCase
12 12 should 'be not nil the instance' do
13 13 assert_not_nil @parser
14 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 15 end
... ...
plugins/sub_organizations/db/migrate/20150508153119_add_timestamp_to_relation.rb
... ... @@ -2,5 +2,7 @@ class AddTimestampToRelation &lt; ActiveRecord::Migration
2 2 def change
3 3 add_column :sub_organizations_plugin_relations, :created_at, :datetime
4 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 7 end
6 8 end
... ...
script/authors 0 → 100755
... ... @@ -0,0 +1,3 @@
  1 +#!/bin/sh
  2 +
  3 +./script/authors-all-commits | sort -u
... ...
script/authors-all-commits 0 → 100755
... ... @@ -0,0 +1,6 @@
  1 +#!/bin/sh
  2 +
  3 +git log --pretty=format:'Author: %aN <%aE>%n%b' --no-merges \
  4 + | grep -i '^\s*\(author:\|signed-off-by:\)' \
  5 + | sed -f script/authors-normalize.sed \
  6 + | sed -f script/authors.sed
... ...
script/authors-commits 0 → 100755
... ... @@ -0,0 +1,4 @@
  1 +#!/bin/sh
  2 +
  3 +./script/authors-all-commits | sort | uniq -c | sort -n
  4 +
... ...
script/authors-normalize.sed 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +s/\s\+/ /g
  2 +s/^\s\+//g
  3 +s/^\S*:\s*//
  4 +s/\(\S\)</\1 </
  5 +s/ + /\n/g
  6 +s/\s*$//
  7 +s/\s*,\s*/\n/g
... ...
script/authors.sed 0 → 100644
... ... @@ -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 61 fi
62 62 }
63 63  
  64 +# change current directory to the noosfero's root
  65 +cd "$(dirname $0)/../"
64 66  
65 67 force_install=false
66 68 if test "$1" = '--force-install'; then
... ...
test/unit/api/articles_test.rb
... ... @@ -348,4 +348,75 @@ class ArticlesTest &lt; ActiveSupport::TestCase
348 348 assert_equal [0, 1, 1], [a1.reload.hits, a2.reload.hits, a3.reload.hits]
349 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 422 end
... ...
test/unit/article_test.rb
... ... @@ -1971,6 +1971,19 @@ class ArticleTest &lt; ActiveSupport::TestCase
1971 1971 assert_equal [a], Article.display_filter(user, p)
1972 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 1987 should 'display_filter show community private content to members' do
1975 1988 user = create_user('someuser').person
1976 1989 p = fast_create(Community)
... ...