Commit 1b60c137d8c3a559c74ee157265278f83bcfd529
Exists in
staging
and in
4 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 | 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 'gettext', '~> 2.2.1', :require => 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 'liquid', '~> 3.0.3' |
| 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 < 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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 => 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
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 | 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
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 < 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 < 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
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
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 | 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) | ... | ... |
| ... | ... | @@ -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 < 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
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 < 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 < 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 | ... | ... |
| ... | ... | @@ -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
test/unit/api/articles_test.rb
| ... | ... | @@ -348,4 +348,75 @@ class ArticlesTest < 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 < 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) | ... | ... |