Commit 922cd359cb73e839107bb1d84137c011ef2c015a
Merge branch 'stable-4.x'
1 | admins: | 1 | admins: |
2 | - ["Paulo Meirelles", "paulo@softwarelivre.org"] | 2 | - ["Paulo Meirelles", "paulo@softwarelivre.org"] |
3 | external_hostname: spb.cdtc.unb.br | 3 | external_hostname: spb.cdtc.unb.br |
4 | +sisp_external_hostname: sisp.cdtc.unb.br | ||
4 | external_ip: 164.41.9.49 | 5 | external_ip: 164.41.9.49 |
5 | site_url: https://spb.cdtc.unb.br | 6 | site_url: https://spb.cdtc.unb.br |
6 | colab_from_address: '"Portal do Software Publico" <noreply@spb.cdtc.unb.br>' | 7 | colab_from_address: '"Portal do Software Publico" <noreply@spb.cdtc.unb.br>' |
1 | admins: | 1 | admins: |
2 | - ["Paulo Meirelles", "paulo@softwarelivre.org"] | 2 | - ["Paulo Meirelles", "paulo@softwarelivre.org"] |
3 | external_hostname: dev.softwarepublico.gov.br | 3 | external_hostname: dev.softwarepublico.gov.br |
4 | +sisp_external_hostname: dev.sisp.gov.br | ||
4 | external_ip: 189.9.151.16 | 5 | external_ip: 189.9.151.16 |
5 | alternative_hostnames: | 6 | alternative_hostnames: |
6 | - www.dev.softwarepublico.gov.br | 7 | - www.dev.softwarepublico.gov.br |
@@ -4,6 +4,7 @@ admins: | @@ -4,6 +4,7 @@ admins: | ||
4 | - ["Nayanne Araújo", "nayanne.bonifacio@planejamento.gov.br"] | 4 | - ["Nayanne Araújo", "nayanne.bonifacio@planejamento.gov.br"] |
5 | - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"] | 5 | - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"] |
6 | external_hostname: homologa.softwarepublico.gov.br | 6 | external_hostname: homologa.softwarepublico.gov.br |
7 | +sisp_external_hostname: homologa.sisp.gov.br | ||
7 | external_ip: 189.9.151.65 | 8 | external_ip: 189.9.151.65 |
8 | alt_ssh_port: 55555 | 9 | alt_ssh_port: 55555 |
9 | site_url: https://homologa.softwarepublico.gov.br | 10 | site_url: https://homologa.softwarepublico.gov.br |
@@ -2,6 +2,7 @@ admins: | @@ -2,6 +2,7 @@ admins: | ||
2 | - ["Paulo Meirelles", "paulo@softwarelivre.org"] | 2 | - ["Paulo Meirelles", "paulo@softwarelivre.org"] |
3 | site_url: https://softwarepublico.lappis | 3 | site_url: https://softwarepublico.lappis |
4 | external_hostname: softwarepublico.lappis | 4 | external_hostname: softwarepublico.lappis |
5 | +sisp_external_hostname: sisp.lappis | ||
5 | external_ip: 10.0.0.11 | 6 | external_ip: 10.0.0.11 |
6 | colab_from_address: '"Portal do Software Publico" <noreply@softwarepublico.lappis>' | 7 | colab_from_address: '"Portal do Software Publico" <noreply@softwarepublico.lappis>' |
7 | server_email: '"Portal do Software Publico" <noreply@softwarepublico.lappis>' | 8 | server_email: '"Portal do Software Publico" <noreply@softwarepublico.lappis>' |
@@ -2,6 +2,7 @@ admins: | @@ -2,6 +2,7 @@ admins: | ||
2 | - ["Paulo Meirelles", "paulo@softwarelivre.org"] | 2 | - ["Paulo Meirelles", "paulo@softwarelivre.org"] |
3 | site_url: https://softwarepublico.dev | 3 | site_url: https://softwarepublico.dev |
4 | external_hostname: softwarepublico.dev | 4 | external_hostname: softwarepublico.dev |
5 | +sisp_external_hostname: sisp.dev | ||
5 | alternative_hostnames: | 6 | alternative_hostnames: |
6 | - www.softwarepublico.dev | 7 | - www.softwarepublico.dev |
7 | - beta.softwarepublico.dev | 8 | - beta.softwarepublico.dev |
@@ -5,6 +5,7 @@ admins: | @@ -5,6 +5,7 @@ admins: | ||
5 | - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"] | 5 | - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"] |
6 | site_url: https://softwarepublico.gov.br | 6 | site_url: https://softwarepublico.gov.br |
7 | external_hostname: softwarepublico.gov.br | 7 | external_hostname: softwarepublico.gov.br |
8 | +sisp_external_hostname: novo.sisp.gov.br | ||
8 | alternative_hostnames: | 9 | alternative_hostnames: |
9 | - www.softwarepublico.gov.br | 10 | - www.softwarepublico.gov.br |
10 | - portal.softwarepublico.gov.br | 11 | - portal.softwarepublico.gov.br |
@@ -11,6 +11,11 @@ if node['platform'] == 'centos' | @@ -11,6 +11,11 @@ if node['platform'] == 'centos' | ||
11 | end | 11 | end |
12 | end | 12 | end |
13 | 13 | ||
14 | +# remove link left behind by old colab packages | ||
15 | +file '/usr/share/nginx/colab' do | ||
16 | + action :delete | ||
17 | +end | ||
18 | + | ||
14 | package 'colab' do | 19 | package 'colab' do |
15 | action :upgrade | 20 | action :upgrade |
16 | notifies :restart, 'service[colab]' | 21 | notifies :restart, 'service[colab]' |
@@ -190,6 +195,11 @@ execute 'colab-mailman-group' do | @@ -190,6 +195,11 @@ execute 'colab-mailman-group' do | ||
190 | command "usermod -a -G mailman colab" | 195 | command "usermod -a -G mailman colab" |
191 | end | 196 | end |
192 | 197 | ||
198 | +# Collect static is here instead of colab.spec because | ||
199 | +# plugins might provide their own static files, as | ||
200 | +# the package don't know about installed plugins | ||
201 | +# collectstatic needs to run after package install | ||
202 | +# and plugins instantiated. Same for migrate. | ||
193 | execute 'colab-admin migrate' | 203 | execute 'colab-admin migrate' |
194 | execute 'colab-admin:collectstatic' do | 204 | execute 'colab-admin:collectstatic' do |
195 | command 'colab-admin collectstatic --noinput' | 205 | command 'colab-admin collectstatic --noinput' |
@@ -28,7 +28,8 @@ SECRET_KEY = "<%= File.read('/etc/colab/secret.key').strip %>" | @@ -28,7 +28,8 @@ SECRET_KEY = "<%= File.read('/etc/colab/secret.key').strip %>" | ||
28 | 28 | ||
29 | SITE_URL = "<%= node['config']['site_url'] %>" | 29 | SITE_URL = "<%= node['config']['site_url'] %>" |
30 | 30 | ||
31 | -ALLOWED_HOSTS = ["<%= node['config']['external_hostname'] %>"] | 31 | +ALLOWED_HOSTS = ["<%= node['config']['external_hostname'] %>", |
32 | + "<%= node['config']['sisp_external_hostname'] %>"] | ||
32 | 33 | ||
33 | ## Disable indexing | 34 | ## Disable indexing |
34 | ROBOTS_NOINDEX = False | 35 | ROBOTS_NOINDEX = False |
@@ -5,18 +5,20 @@ upstream colab { | @@ -5,18 +5,20 @@ upstream colab { | ||
5 | server { | 5 | server { |
6 | listen *:80; | 6 | listen *:80; |
7 | 7 | ||
8 | - server_name <%= node['config']['external_hostname'] %>; | 8 | + server_name <%= node['config']['external_hostname'] %> <%= node['config']['sisp_external_hostname'] %>; |
9 | 9 | ||
10 | access_log /var/log/nginx/colab.access.log; | 10 | access_log /var/log/nginx/colab.access.log; |
11 | error_log /var/log/nginx/colab.error.log; | 11 | error_log /var/log/nginx/colab.error.log; |
12 | - client_max_body_size 150m; | 12 | + client_max_body_size 0; |
13 | 13 | ||
14 | + # FIXME: Favico should be at right place and this | ||
15 | + # code should be removed. | ||
14 | location ~ ^/static/img/fav\.[^.]+\.ico$ { | 16 | location ~ ^/static/img/fav\.[^.]+\.ico$ { |
15 | alias /var/lib/colab/assets/spb/fav.ico; | 17 | alias /var/lib/colab/assets/spb/fav.ico; |
16 | } | 18 | } |
17 | 19 | ||
18 | location / { | 20 | location / { |
19 | - root /usr/share/nginx/colab; | 21 | + root /var/lib/colab/assets/; |
20 | try_files $uri @colab-app; | 22 | try_files $uri @colab-app; |
21 | } | 23 | } |
22 | 24 |
@@ -6,11 +6,11 @@ upstream noosfero { | @@ -6,11 +6,11 @@ upstream noosfero { | ||
6 | 6 | ||
7 | server { | 7 | server { |
8 | listen *:80; | 8 | listen *:80; |
9 | - server_name <%= node['config']['external_hostname'] %> <%= node['peers']['social'] %>; | 9 | + server_name <%= node['config']['external_hostname'] %> <%= node['peers']['social'] %> <%= node['config']['sisp_external_hostname'] %>; |
10 | underscores_in_headers on; | 10 | underscores_in_headers on; |
11 | access_log /var/log/nginx/noosfero.access.log; | 11 | access_log /var/log/nginx/noosfero.access.log; |
12 | error_log /var/log/nginx/noosfero.error.log; | 12 | error_log /var/log/nginx/noosfero.error.log; |
13 | - client_max_body_size 150m; | 13 | + client_max_body_size 0; |
14 | 14 | ||
15 | root /usr/lib/noosfero/public; | 15 | root /usr/lib/noosfero/public; |
16 | location /social/ { | 16 | location /social/ { |
@@ -24,7 +24,7 @@ server { | @@ -24,7 +24,7 @@ server { | ||
24 | proxy_read_timeout 90; | 24 | proxy_read_timeout 90; |
25 | proxy_connect_timeout 90; | 25 | proxy_connect_timeout 90; |
26 | proxy_redirect off; | 26 | proxy_redirect off; |
27 | - proxy_set_header Host <%= node['config']['external_hostname'] %>; | 27 | + proxy_set_header Host $host; |
28 | proxy_set_header X-Real-IP $remote_addr; | 28 | proxy_set_header X-Real-IP $remote_addr; |
29 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | 29 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
30 | } | 30 | } |
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +-----BEGIN CERTIFICATE----- | ||
2 | +MIIEgTCCA2mgAwIBAgIJAJz0XkZVg/KTMA0GCSqGSIb3DQEBCwUAMIHWMQswCQYD | ||
3 | +VQQGEwJCUjEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDERMA8GA1UEBwwIQnJh | ||
4 | +c2lsaWExPTA7BgNVBAoMNE1pbmlzdGVyaW8gZG8gUGxhbmVqYW1lbnRvLCBPcsOD | ||
5 | +wqdhbWVudG8gZSBHZXN0w4PCo28xDTALBgNVBAsMBFNMVEkxIzAhBgNVBAMMGmRl | ||
6 | +di5zb2Z0d2FyZXB1YmxpY28uZ292LmJyMSYwJAYJKoZIhvcNAQkBFhdwYXVsb0Bz | ||
7 | +b2Z0d2FyZWxpdnJlLm9yZzAeFw0xNTAzMTIxOTQ3NTdaFw0xNzEyMDYxOTQ3NTda | ||
8 | +MIHWMQswCQYDVQQGEwJCUjEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDERMA8G | ||
9 | +A1UEBwwIQnJhc2lsaWExPTA7BgNVBAoMNE1pbmlzdGVyaW8gZG8gUGxhbmVqYW1l | ||
10 | +bnRvLCBPcsODwqdhbWVudG8gZSBHZXN0w4PCo28xDTALBgNVBAsMBFNMVEkxIzAh | ||
11 | +BgNVBAMMGmRldi5zb2Z0d2FyZXB1YmxpY28uZ292LmJyMSYwJAYJKoZIhvcNAQkB | ||
12 | +FhdwYXVsb0Bzb2Z0d2FyZWxpdnJlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEP | ||
13 | +ADCCAQoCggEBANUAsaDZ77GHyrlWDet+I2Xq8Sf31j3ponMXzMd/6zAu6NSDcZjl | ||
14 | +LPrFEqfqBVdY3T1L5THDHG42ZS6n0FHsOTBq2JKswlcTSPyaHiweRI+lEMVzRcgm | ||
15 | +GshtJnTWukMsDvOGwVe6zkcKWl5vG2KKgTrI0l+QnCbCP10UNqwTCl2gN5l0piDl | ||
16 | +rTiBwRbfn1wdGd9JgQr+MQrMhPnE31vsSA8G5p0KUX4oxYgmKmMykutqJIia7LeF | ||
17 | +VQtMuRZbfz/HwtUtFuAa3ztBQiKmoZlrh1k/akm3YhBiramtAXEt7aHI6HY3X0pw | ||
18 | +l7AE7MHOutCfoshEHZToZNJiyXpDATIIwfsCAwEAAaNQME4wHQYDVR0OBBYEFDVm | ||
19 | +z5gED6aHPs1H9DdqUfGIY0vfMB8GA1UdIwQYMBaAFDVmz5gED6aHPs1H9DdqUfGI | ||
20 | +Y0vfMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBANNc+ZD4ImQI8V2Y | ||
21 | +2lkRnRQvQ7M2mdAgRaP5f4EJLLlczmRPzNhItiYr9njg8pUdN50iQPnvwlDJhI5d | ||
22 | +mFuDypY1AhLB74sSDk7Um3gFP5rAlKdD9WrmKA3FSfGcUJA2Usa+6NnudBmm1Uvn | ||
23 | +yLGpOCSnxQfTZ+81XanI9Sy6kV/6Nwpaid9akmm3aIUtJA0thC0OWEhHMY97vqBF | ||
24 | +7or8IKooXxIx4jNbholJXQ2zD5tc5nDfBwB9DFBX7LeXRqZQE4T0eUOhF/shoRnG | ||
25 | +gFSMN8Vjhw8eV7wPvxX6aX8kZmfZgAF1m4EzEaDLs2iL7dVkPxO7SSlXqkg0nLuH | ||
26 | +RWIj+F0= | ||
27 | +-----END CERTIFICATE----- |
@@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
1 | +-----BEGIN PRIVATE KEY----- | ||
2 | +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDVALGg2e+xh8q5 | ||
3 | +Vg3rfiNl6vEn99Y96aJzF8zHf+swLujUg3GY5Sz6xRKn6gVXWN09S+UxwxxuNmUu | ||
4 | +p9BR7DkwatiSrMJXE0j8mh4sHkSPpRDFc0XIJhrIbSZ01rpDLA7zhsFXus5HClpe | ||
5 | +bxtiioE6yNJfkJwmwj9dFDasEwpdoDeZdKYg5a04gcEW359cHRnfSYEK/jEKzIT5 | ||
6 | +xN9b7EgPBuadClF+KMWIJipjMpLraiSImuy3hVULTLkWW38/x8LVLRbgGt87QUIi | ||
7 | +pqGZa4dZP2pJt2IQYq2prQFxLe2hyOh2N19KcJewBOzBzrrQn6LIRB2U6GTSYsl6 | ||
8 | +QwEyCMH7AgMBAAECggEAa2w6KUFAXWx6lRYNVyL6f0AJ93pKllbqEtmB8WtWFarS | ||
9 | +ybqw48dQ8/fH/N9Nakvq6CsKoBoikILmbK09ptNX1E9OgkqWiIu1V4/yf5WURk2d | ||
10 | +M7d7DgIJp+NEbdCNh6sEr1Ta1X/k4HccNFwcl4n6usblMkUgO3vjsPGs0QOZSrXD | ||
11 | +NDp4ixdElxyuZPZnRkrry4JZzm0Jad/kNw0naz0S+YLqysJNOD1kepN+DAlap5WE | ||
12 | +oEfvmkLgrTDnjar8cK3i/EzbzNxWxLo89IdbbnpPV3m/SSQO7p689uL+VkZxLz0I | ||
13 | +uzVg6TZ1jQ5+IWjKL0Aqt5xkStaZp2uh8vlNw/0IQQKBgQDwBVtI+2ASacuu6eJL | ||
14 | +RTWalTPH/jr9mA0Ism2Px5hdI7vugJ3NJY0fIRTzRU53MFfRXZIcpYf+60stYhiX | ||
15 | +QBmF/DukxtUL4naOz2VzkY5RcKnfsvUff65KGaCdHzWQQsL93qEjpusRMQwhGErt | ||
16 | +vgKsbjgyHaVbVLGNZuFYoNLzkwKBgQDjLt6d8p7rR2e89sQKuE0B43UiuL/rDY1n | ||
17 | +OC411KwqsKFX3J/ias4NIy/h1BEag+Ron9SMRAlVoPg+2aLmywZp4KijcFxSLUFI | ||
18 | +2fWtoRXEyAOgz61I9SonGvBQLCLAZ+24VpoymmMNdH/xbeoysRCxovPw3NPnFfzB | ||
19 | +xYfiRpXI+QKBgE9v1mhvGbq+XPUE3yo+O6Fvo/WaxHdNrXKlavFdA6Y/v2EOHCvb | ||
20 | +M7uLvV1OIMv9qfLW3xawCjRqNzVL9AuK4WegtTSxwazvRIG7Tj5TfCCkAvTQS6Qj | ||
21 | +I9HObYPS4m1eSx6uYfJkugO0kekaGyJX8paS2/JqMWHqw+Cing4xG+AVAoGBAKx2 | ||
22 | +DStMXpXve/H4RnR42oS/flGgfJjcjea4wGO/Ef/KXIENjBZezBMvDg9aZK2DSGag | ||
23 | +RsNAdvGZJDraDo8zuqevk3WXO45qqm+6foWTjqn2yMJQRZToAFr1WU8TYkI74zuY | ||
24 | +CrC1gNJbCTFnJm3a+vhO4u6LRRXdHCahZHlC6jxJAoGARpcsSUSXqWOsmCvP+d0I | ||
25 | +m3B7DTJc0fL7WOoXINSa1U4zr9vMfSxTdWBdlKmizDvzzz9+Rx+03TGQkqzroTk/ | ||
26 | +eWZuPuJ74qXkT68JCoCmf6MBolIkWqkDO5zKlQF3hkb3c16mOKCqzQpXLGtoZQRG | ||
27 | +PH+5xM1maQvJxF5tCVQz0uU= | ||
28 | +-----END PRIVATE KEY----- |
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +-----BEGIN CERTIFICATE----- | ||
2 | +MIIEjzCCA3egAwIBAgIJAPLzeW3WZTOqMA0GCSqGSIb3DQEBCwUAMIHdMQswCQYD | ||
3 | +VQQGEwJCUjEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDERMA8GA1UEBwwIQnJh | ||
4 | +c2lsaWExIzAhBgNVBAoMGk1pbmlzdGVyaW8gZG8gUGxhbmVqYW1lbnRvMS0wKwYD | ||
5 | +VQQLDCRQcm9ncmFtYSBTb2Z0d2FyZSBQdWJsaWNvIEJyYXNpbGVpcm8xJDAiBgNV | ||
6 | +BAMMG2JldGEuc29mdHdhcmVwdWJsaWNvLmdvdi5icjEmMCQGCSqGSIb3DQEJARYX | ||
7 | +cGF1bG9Ac29mdHdhcmVsaXZyZS5vcmcwHhcNMTUwMjEyMTM0MDEwWhcNMTcxMTA4 | ||
8 | +MTM0MDEwWjCB3TELMAkGA1UEBhMCQlIxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVy | ||
9 | +YWwxETAPBgNVBAcMCEJyYXNpbGlhMSMwIQYDVQQKDBpNaW5pc3RlcmlvIGRvIFBs | ||
10 | +YW5lamFtZW50bzEtMCsGA1UECwwkUHJvZ3JhbWEgU29mdHdhcmUgUHVibGljbyBC | ||
11 | +cmFzaWxlaXJvMSQwIgYDVQQDDBtiZXRhLnNvZnR3YXJlcHVibGljby5nb3YuYnIx | ||
12 | +JjAkBgkqhkiG9w0BCQEWF3BhdWxvQHNvZnR3YXJlbGl2cmUub3JnMIIBIjANBgkq | ||
13 | +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQcGwjcDku+162qWFXvfD3VzK+qonEIo | ||
14 | +EWimjFgxkBIsbKQ6WurTg6jTdT7TCyz0bfXgNPUo2tTfOtyM2ctb/oCfu5Piu3hK | ||
15 | +TU71/oswUWCMnPwaGhvJ7wWFrkClLNS3MYzlbGAxuLtX8KEcCSOR0109xvVMb+LD | ||
16 | +kAUmHij1DfI9XguYS4J2xQ+aDCHZRzRxMPV7If75HtoeZ7y8bieqFL9T1+atsvbS | ||
17 | +WuoYaJFKiW859h6Fwo/0wfkv8gSaGulSwnS2esMPfEm97QfmWbgEqq/XFkrKWtPo | ||
18 | +ENNY8WlGFDMWdur7dlQwazjG9+OK5h3X84qDfYhzY4GPh1O+2WDudwIDAQABo1Aw | ||
19 | +TjAdBgNVHQ4EFgQUzu9xzlM0W3YmELPcUvNlfpYcndQwHwYDVR0jBBgwFoAUzu9x | ||
20 | +zlM0W3YmELPcUvNlfpYcndQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC | ||
21 | +AQEAaQKLFZaqLRS493o4cyJsz1mxBgbzQ+6vttEPmY1/yW391h9rBXDTlpqRt22z | ||
22 | ++CNDzo7L2LQjlrvvqk/ByDl5xWw4z9Qy+OFGFVGDVPvhld00/7QNnqkwyYbqWghN | ||
23 | +M0m/BZp59Bpm+eRHG1HIw0jpA/zfgVqUjoIgPWWnGJLtJh4l+GOAxwTdJh0Vp/1Q | ||
24 | +yYiI6NRufr8+lUStojY27dC94WLX2dCUAS0imvdONWiaCZ8ktq4D3AGkni5wUVH1 | ||
25 | +knap5Bf5FRnKCTnRmZe1Wi+e2ZIMDdW4gHsC5NKO38c4agWubE68yhYiFKMRLWsd | ||
26 | +fLq+KLdrwb++Xd0SECj/hsQYLQ== | ||
27 | +-----END CERTIFICATE----- |
@@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
1 | +-----BEGIN PRIVATE KEY----- | ||
2 | +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9BwbCNwOS77Xr | ||
3 | +apYVe98PdXMr6qicQigRaKaMWDGQEixspDpa6tODqNN1PtMLLPRt9eA09Sja1N86 | ||
4 | +3IzZy1v+gJ+7k+K7eEpNTvX+izBRYIyc/BoaG8nvBYWuQKUs1LcxjOVsYDG4u1fw | ||
5 | +oRwJI5HTXT3G9Uxv4sOQBSYeKPUN8j1eC5hLgnbFD5oMIdlHNHEw9Xsh/vke2h5n | ||
6 | +vLxuJ6oUv1PX5q2y9tJa6hhokUqJbzn2HoXCj/TB+S/yBJoa6VLCdLZ6ww98Sb3t | ||
7 | +B+ZZuASqr9cWSspa0+gQ01jxaUYUMxZ26vt2VDBrOMb344rmHdfzioN9iHNjgY+H | ||
8 | +U77ZYO53AgMBAAECggEAXM+AYAeG97Q+zDHvMuk5Imv2eo+i7eYFqlaJv8rluulR | ||
9 | +ap5QEKfP5osUGDMaiBgwg3T/+sCMqLVwTYRQm/cfWhxpUT5RSt7LDJ5CZhKNTMdt | ||
10 | +Av89CaivQ26grmgLMbHXqLqXQtkQULWbfgh8rXgLd44GcROrzhu3DZWZm6FcgNWf | ||
11 | +0/NpruEkxyqvCGygOOPR8IMlMGuCs+CUcVuDL5InrobroKTrWgWXOW8k+XJpaINz | ||
12 | +5udLgdTAfRWecuJkFvfA71JZJXpnyTSx2je16SwnA6bhaQCSuK4myXiOVacPUOhM | ||
13 | +PZ2/gcZbuB16vFlNMhQUjvzFKMvH96R+PrYuG7BGYQKBgQD5gZwKuc3cat17ghpB | ||
14 | +WSl3njBrqiCMvTYeec6anfTB0bSs9z8LoCwRdLATw9AAPfFuXnxzBNzTEK3GBnW6 | ||
15 | +slYeDrhrOKz4uilHnXdSGXu0vOgjn5AzuHtnNUc2Eyx3qe2RxXJZ5Y/ADhJNCTIU | ||
16 | +GFTBak/FLFrMOvxPtFaluP4VKQKBgQDB8naaziF42y254+JzbshMlLffRpnubk/X | ||
17 | +Xxvntjh7dCPCS+jrARM0XGHnrhFyDOODny55EyRzYip2+r80PN4N5rzQuaIFOhh7 | ||
18 | +aT/X2hFBFcAmiWCUTRXCRdNTZYGFNOQ+A9xrR375Ltqu3w1K/RB2QEfWYPR+KLEe | ||
19 | +QdtHmuK6nwKBgQCVeITflBH0cvy+SeGqtlx2MYk2ZpPbXFq4hSY1UF1ZY2TGndPi | ||
20 | +BhGAX5RAMvU/v9wLz4TkbsxPkVVZJXOP5dhbZ1wpt6k/1F54bagWwfdu/iBffu6n | ||
21 | +XWRoHu3LQk9IXL9arZtkqXalioiCJ/kdOrpDqImjSIAYi1mt8g5ad2mXiQKBgHdy | ||
22 | +Bk2s6bxu8ChuCscg0UcoyF1ANAk98vonXx5DgWG201cUPSyOiu9SfhGbiK7+9RfY | ||
23 | +71wtx+Mv8As6votDeVaCZoL98KTbdLx8w48ChGHbLW4OaWasWtw8+LuB5lTNkEwJ | ||
24 | +QLTpYW/BxXixcpReascJK7UCHVGdagfCc3QUFdLtAoGBAPN9+2/W990bWNLlEncB | ||
25 | +tMq89b/pOGhy9u+CN2pgKmBBkL5M8ESyYDUKM7wn+DlilpcYvadlR9gfk4gaCQQ4 | ||
26 | +DLHGFGfvVN1CRuIU0YAgaLMNveVV/6Dd7D8/OxYxKlCrFZaUfVe2HcVPbm+w4tZf | ||
27 | +2HfXJdbD1gNhbTmWlKjFLdA1 | ||
28 | +-----END PRIVATE KEY----- |
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +-----BEGIN CERTIFICATE----- | ||
2 | +MIIEjzCCA3egAwIBAgIJAPLzeW3WZTOqMA0GCSqGSIb3DQEBCwUAMIHdMQswCQYD | ||
3 | +VQQGEwJCUjEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDERMA8GA1UEBwwIQnJh | ||
4 | +c2lsaWExIzAhBgNVBAoMGk1pbmlzdGVyaW8gZG8gUGxhbmVqYW1lbnRvMS0wKwYD | ||
5 | +VQQLDCRQcm9ncmFtYSBTb2Z0d2FyZSBQdWJsaWNvIEJyYXNpbGVpcm8xJDAiBgNV | ||
6 | +BAMMG2JldGEuc29mdHdhcmVwdWJsaWNvLmdvdi5icjEmMCQGCSqGSIb3DQEJARYX | ||
7 | +cGF1bG9Ac29mdHdhcmVsaXZyZS5vcmcwHhcNMTUwMjEyMTM0MDEwWhcNMTcxMTA4 | ||
8 | +MTM0MDEwWjCB3TELMAkGA1UEBhMCQlIxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVy | ||
9 | +YWwxETAPBgNVBAcMCEJyYXNpbGlhMSMwIQYDVQQKDBpNaW5pc3RlcmlvIGRvIFBs | ||
10 | +YW5lamFtZW50bzEtMCsGA1UECwwkUHJvZ3JhbWEgU29mdHdhcmUgUHVibGljbyBC | ||
11 | +cmFzaWxlaXJvMSQwIgYDVQQDDBtiZXRhLnNvZnR3YXJlcHVibGljby5nb3YuYnIx | ||
12 | +JjAkBgkqhkiG9w0BCQEWF3BhdWxvQHNvZnR3YXJlbGl2cmUub3JnMIIBIjANBgkq | ||
13 | +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQcGwjcDku+162qWFXvfD3VzK+qonEIo | ||
14 | +EWimjFgxkBIsbKQ6WurTg6jTdT7TCyz0bfXgNPUo2tTfOtyM2ctb/oCfu5Piu3hK | ||
15 | +TU71/oswUWCMnPwaGhvJ7wWFrkClLNS3MYzlbGAxuLtX8KEcCSOR0109xvVMb+LD | ||
16 | +kAUmHij1DfI9XguYS4J2xQ+aDCHZRzRxMPV7If75HtoeZ7y8bieqFL9T1+atsvbS | ||
17 | +WuoYaJFKiW859h6Fwo/0wfkv8gSaGulSwnS2esMPfEm97QfmWbgEqq/XFkrKWtPo | ||
18 | +ENNY8WlGFDMWdur7dlQwazjG9+OK5h3X84qDfYhzY4GPh1O+2WDudwIDAQABo1Aw | ||
19 | +TjAdBgNVHQ4EFgQUzu9xzlM0W3YmELPcUvNlfpYcndQwHwYDVR0jBBgwFoAUzu9x | ||
20 | +zlM0W3YmELPcUvNlfpYcndQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC | ||
21 | +AQEAaQKLFZaqLRS493o4cyJsz1mxBgbzQ+6vttEPmY1/yW391h9rBXDTlpqRt22z | ||
22 | ++CNDzo7L2LQjlrvvqk/ByDl5xWw4z9Qy+OFGFVGDVPvhld00/7QNnqkwyYbqWghN | ||
23 | +M0m/BZp59Bpm+eRHG1HIw0jpA/zfgVqUjoIgPWWnGJLtJh4l+GOAxwTdJh0Vp/1Q | ||
24 | +yYiI6NRufr8+lUStojY27dC94WLX2dCUAS0imvdONWiaCZ8ktq4D3AGkni5wUVH1 | ||
25 | +knap5Bf5FRnKCTnRmZe1Wi+e2ZIMDdW4gHsC5NKO38c4agWubE68yhYiFKMRLWsd | ||
26 | +fLq+KLdrwb++Xd0SECj/hsQYLQ== | ||
27 | +-----END CERTIFICATE----- |
@@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
1 | +-----BEGIN PRIVATE KEY----- | ||
2 | +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9BwbCNwOS77Xr | ||
3 | +apYVe98PdXMr6qicQigRaKaMWDGQEixspDpa6tODqNN1PtMLLPRt9eA09Sja1N86 | ||
4 | +3IzZy1v+gJ+7k+K7eEpNTvX+izBRYIyc/BoaG8nvBYWuQKUs1LcxjOVsYDG4u1fw | ||
5 | +oRwJI5HTXT3G9Uxv4sOQBSYeKPUN8j1eC5hLgnbFD5oMIdlHNHEw9Xsh/vke2h5n | ||
6 | +vLxuJ6oUv1PX5q2y9tJa6hhokUqJbzn2HoXCj/TB+S/yBJoa6VLCdLZ6ww98Sb3t | ||
7 | +B+ZZuASqr9cWSspa0+gQ01jxaUYUMxZ26vt2VDBrOMb344rmHdfzioN9iHNjgY+H | ||
8 | +U77ZYO53AgMBAAECggEAXM+AYAeG97Q+zDHvMuk5Imv2eo+i7eYFqlaJv8rluulR | ||
9 | +ap5QEKfP5osUGDMaiBgwg3T/+sCMqLVwTYRQm/cfWhxpUT5RSt7LDJ5CZhKNTMdt | ||
10 | +Av89CaivQ26grmgLMbHXqLqXQtkQULWbfgh8rXgLd44GcROrzhu3DZWZm6FcgNWf | ||
11 | +0/NpruEkxyqvCGygOOPR8IMlMGuCs+CUcVuDL5InrobroKTrWgWXOW8k+XJpaINz | ||
12 | +5udLgdTAfRWecuJkFvfA71JZJXpnyTSx2je16SwnA6bhaQCSuK4myXiOVacPUOhM | ||
13 | +PZ2/gcZbuB16vFlNMhQUjvzFKMvH96R+PrYuG7BGYQKBgQD5gZwKuc3cat17ghpB | ||
14 | +WSl3njBrqiCMvTYeec6anfTB0bSs9z8LoCwRdLATw9AAPfFuXnxzBNzTEK3GBnW6 | ||
15 | +slYeDrhrOKz4uilHnXdSGXu0vOgjn5AzuHtnNUc2Eyx3qe2RxXJZ5Y/ADhJNCTIU | ||
16 | +GFTBak/FLFrMOvxPtFaluP4VKQKBgQDB8naaziF42y254+JzbshMlLffRpnubk/X | ||
17 | +Xxvntjh7dCPCS+jrARM0XGHnrhFyDOODny55EyRzYip2+r80PN4N5rzQuaIFOhh7 | ||
18 | +aT/X2hFBFcAmiWCUTRXCRdNTZYGFNOQ+A9xrR375Ltqu3w1K/RB2QEfWYPR+KLEe | ||
19 | +QdtHmuK6nwKBgQCVeITflBH0cvy+SeGqtlx2MYk2ZpPbXFq4hSY1UF1ZY2TGndPi | ||
20 | +BhGAX5RAMvU/v9wLz4TkbsxPkVVZJXOP5dhbZ1wpt6k/1F54bagWwfdu/iBffu6n | ||
21 | +XWRoHu3LQk9IXL9arZtkqXalioiCJ/kdOrpDqImjSIAYi1mt8g5ad2mXiQKBgHdy | ||
22 | +Bk2s6bxu8ChuCscg0UcoyF1ANAk98vonXx5DgWG201cUPSyOiu9SfhGbiK7+9RfY | ||
23 | +71wtx+Mv8As6votDeVaCZoL98KTbdLx8w48ChGHbLW4OaWasWtw8+LuB5lTNkEwJ | ||
24 | +QLTpYW/BxXixcpReascJK7UCHVGdagfCc3QUFdLtAoGBAPN9+2/W990bWNLlEncB | ||
25 | +tMq89b/pOGhy9u+CN2pgKmBBkL5M8ESyYDUKM7wn+DlilpcYvadlR9gfk4gaCQQ4 | ||
26 | +DLHGFGfvVN1CRuIU0YAgaLMNveVV/6Dd7D8/OxYxKlCrFZaUfVe2HcVPbm+w4tZf | ||
27 | +2HfXJdbD1gNhbTmWlKjFLdA1 | ||
28 | +-----END PRIVATE KEY----- |
@@ -6,6 +6,13 @@ cookbook_file "/etc/nginx/#{node['config']['external_hostname']}.crt" do | @@ -6,6 +6,13 @@ cookbook_file "/etc/nginx/#{node['config']['external_hostname']}.crt" do | ||
6 | notifies :restart, 'service[nginx]' | 6 | notifies :restart, 'service[nginx]' |
7 | end | 7 | end |
8 | 8 | ||
9 | +cookbook_file "/etc/nginx/#{node['config']['sisp_external_hostname']}.crt" do | ||
10 | + owner 'root' | ||
11 | + group 'root' | ||
12 | + mode 0600 | ||
13 | + notifies :restart, 'service[nginx]' | ||
14 | +end | ||
15 | + | ||
9 | cookbook_file "/etc/sysctl.d/ip_forward.conf" do | 16 | cookbook_file "/etc/sysctl.d/ip_forward.conf" do |
10 | owner 'root' | 17 | owner 'root' |
11 | group 'root' | 18 | group 'root' |
@@ -23,6 +30,13 @@ cookbook_file "/etc/nginx/#{node['config']['external_hostname']}.key" do | @@ -23,6 +30,13 @@ cookbook_file "/etc/nginx/#{node['config']['external_hostname']}.key" do | ||
23 | notifies :restart, 'service[nginx]' | 30 | notifies :restart, 'service[nginx]' |
24 | end | 31 | end |
25 | 32 | ||
33 | +cookbook_file "/etc/nginx/#{node['config']['sisp_external_hostname']}.key" do | ||
34 | + owner 'root' | ||
35 | + group 'root' | ||
36 | + mode 0600 | ||
37 | + notifies :restart, 'service[nginx]' | ||
38 | +end | ||
39 | + | ||
26 | template '/etc/nginx/conf.d/reverse_proxy.conf' do | 40 | template '/etc/nginx/conf.d/reverse_proxy.conf' do |
27 | owner 'root' | 41 | owner 'root' |
28 | group 'root' | 42 | group 'root' |
@@ -5,15 +5,15 @@ upstream colab { | @@ -5,15 +5,15 @@ upstream colab { | ||
5 | server { | 5 | server { |
6 | listen *:80; | 6 | listen *:80; |
7 | 7 | ||
8 | - server_name <%= node['config']['external_hostname'] %>; | ||
9 | - return 301 https://$server_name$request_uri; | 8 | + server_name <%= node['config']['external_hostname'] %> <%= node['config']['sisp_external_hostname'] %>; |
9 | + return 301 https://$host$request_uri; | ||
10 | } | 10 | } |
11 | 11 | ||
12 | server { | 12 | server { |
13 | listen *:443 ssl; | 13 | listen *:443 ssl; |
14 | 14 | ||
15 | server_name <%= node['config']['external_hostname'] %>; | 15 | server_name <%= node['config']['external_hostname'] %>; |
16 | - client_max_body_size 150m; | 16 | + client_max_body_size 500m; |
17 | 17 | ||
18 | ssl on; | 18 | ssl on; |
19 | 19 | ||
@@ -47,3 +47,38 @@ server { | @@ -47,3 +47,38 @@ server { | ||
47 | } | 47 | } |
48 | 48 | ||
49 | } | 49 | } |
50 | + | ||
51 | +server { | ||
52 | + listen *:443 ssl; | ||
53 | + | ||
54 | + server_name <%= node['config']['sisp_external_hostname'] %>; | ||
55 | + client_max_body_size 500m; | ||
56 | + | ||
57 | + ssl on; | ||
58 | + | ||
59 | + ssl_certificate /etc/nginx/<%= node['config']['sisp_external_hostname'] %>.crt; | ||
60 | + ssl_certificate_key /etc/nginx/<%= node['config']['sisp_external_hostname'] %>.key; | ||
61 | + ssl_session_cache shared:SSL:10m; | ||
62 | + ssl_session_timeout 5m; | ||
63 | + ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; | ||
64 | + ssl_ciphers HIGH:!aNULL:!MD5; | ||
65 | + ssl_prefer_server_ciphers on; | ||
66 | + | ||
67 | + access_log /var/log/nginx/ssl-<%= node['config']['sisp_external_hostname'] %>.access.log; | ||
68 | + error_log /var/log/nginx/ssl-<%= node['config']['sisp_external_hostname'] %>.error.log; | ||
69 | + | ||
70 | + # TODO caching | ||
71 | + location / { | ||
72 | + proxy_pass http://colab; | ||
73 | + proxy_read_timeout 90; | ||
74 | + proxy_connect_timeout 90; | ||
75 | + proxy_redirect off; | ||
76 | + proxy_set_header Host $host; | ||
77 | + proxy_set_header X-Real-IP $remote_addr; | ||
78 | + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
79 | + proxy_set_header X-Forwarded-Proto https; | ||
80 | + proxy_set_header Remote-User ''; | ||
81 | + proxy_set_header REMOTE_USER ''; | ||
82 | + } | ||
83 | + | ||
84 | +} |
@@ -68,23 +68,22 @@ O output do comando acima é a sua chave pública, ela deverá ser copiada e col | @@ -68,23 +68,22 @@ O output do comando acima é a sua chave pública, ela deverá ser copiada e col | ||
68 | Git push com HTTPS | 68 | Git push com HTTPS |
69 | ----------------- | 69 | ----------------- |
70 | 70 | ||
71 | -Para a utilização do git com protocolo HTTPS é necessário configurar a senha do perfil do seu usuário na ferramenta Gitlab, pois a senha do seu usuário do portal não é configurada no Gitlab já que a autenticação é feita via REMOTE_USER (cabeçalho HTTP). Para configurar a sua senha no Gitlab é necessário que já exista um usuário válido no portal e o mesmo esteja logado, em seguida, siga os passos a seguir: | 71 | +Para a utilização do git com protocolo HTTPS, existem dois casos básicos: aqueles que já tinham cadastro e os novos usuários. Se for o primeiro cadastro, pule o passo "0" descrito abaixo. |
72 | 72 | ||
73 | -1- No menu, clique no botão "Desenvolvimento" para que apareça novas opções | ||
74 | -2- Nas opções apresentadas, clique em "Perfil" para ser direcionado para o seu perfil do Gitlab | ||
75 | -3- No seu perfil será apresentado um novo menu abaixo do menu do portal, nesse menu clique na aba "Password" | ||
76 | -4- Na aba "Password", indique que você esqueceu a sua senha clicando no link "Forgot your password?" | ||
77 | -5- Um email será enviado para o seu endereço de email configurado no seu usuário do portal | ||
78 | -6- Abra o email recebido e clique no link "Change my password", que irá redirecionar para uma página de configuração de uma nova senha | ||
79 | -7- Na página de configuração de uma nova senha digite a sua senha e a confirme (sugere-se que use a mesma senha do portal), finalizando a operação de configuração da senha do seu perfil no Gitlab | 73 | +0) Mudar senha no colab (para usuários já cadastrados): No topo da tela, do lado direito, você verá um icone circular no qual você deve clicar. Na nova tela apresentada, escolha a opção "Meu perfil" e em seguida escolha a opção "Editar Perfil". Na nova tela, clique na opção "Trocar senha". Digite a sua senha original, e a nova senha. |
74 | +1) Para clonar o repositório via http, use o comando abaixo: | ||
80 | 75 | ||
81 | -Com a senha do seu perfil do Gitlab configurada pode-se utlizar normalmente o git com protocolo HTTPS, onde será solcitado o seu usuário e senha durante as operações. Lembrando que o usuário será o seu usuário do portal e a senha será a que foi configurada com o processo descrito anteriormente. | 76 | + $ git -c http.sslVerify=false clone <seu-repositório> |
82 | 77 | ||
83 | -No Portal do Software Público Brasileiro, assim como em outros portais do governo, temos problemas com o certificado digital. Para o git conseguir realizar as operções usando HTTPS é necessário ignorar o certificado, para isso, abra o terminal (com o git instalado) e execute o seguinte comando:: | 78 | +2) Para realizar o push via http, faça: |
84 | 79 | ||
85 | $ cd <caminho-do-diretório-do-projeto> | 80 | $ cd <caminho-do-diretório-do-projeto> |
86 | $ git config http.sslVerify "false" | 81 | $ git config http.sslVerify "false" |
82 | + $ git push <remote> <branch> | ||
87 | 83 | ||
84 | +3) Informe o seu login e senha. | ||
85 | + | ||
86 | +No Portal do Software Público Brasileiro, assim como em outros portais do governo, temos problemas com o certificado digital. Para o git conseguir realizar as operações usando HTTPS é necessário ignorar o certificado, por isto as opções com "sslVerify". | ||
88 | 87 | ||
89 | Integração manual entre repositórios | 88 | Integração manual entre repositórios |
90 | --------------------------------- | 89 | --------------------------------- |
@@ -15,7 +15,7 @@ version = open('VERSION').read().strip() | @@ -15,7 +15,7 @@ version = open('VERSION').read().strip() | ||
15 | 15 | ||
16 | setup( | 16 | setup( |
17 | name='colab-spb-plugin', | 17 | name='colab-spb-plugin', |
18 | - version=version, | 18 | + version='0.2.3', |
19 | author='Macartur Sousa', | 19 | author='Macartur Sousa', |
20 | author_email='macartur.sc@gmail.com', | 20 | author_email='macartur.sc@gmail.com', |
21 | url='https://portal.softwarepublico.gov.br/gitlab/softwarepublico/colab-spb-plugin/', | 21 | url='https://portal.softwarepublico.gov.br/gitlab/softwarepublico/colab-spb-plugin/', |
1 | PACKAGE = colab-spb-theme | 1 | PACKAGE = colab-spb-theme |
2 | -VERSION = $(shell cat VERSION) | 2 | +VERSION = 0.3.4 |
3 | DISTDIR = dist | 3 | DISTDIR = dist |
4 | PACKAGE_NAME = $(PACKAGE)-$(VERSION) | 4 | PACKAGE_NAME = $(PACKAGE)-$(VERSION) |
5 | TARBALL = $(PACKAGE_NAME).tar.gz | 5 | TARBALL = $(PACKAGE_NAME).tar.gz |
@@ -10,7 +10,7 @@ all: | @@ -10,7 +10,7 @@ all: | ||
10 | colab_dir=/usr/lib/colab | 10 | colab_dir=/usr/lib/colab |
11 | 11 | ||
12 | dist: clean | 12 | dist: clean |
13 | - mkdir -p $(DISTDIR)/$(PACKAGE_NAME) | 13 | + mkdir -p $(DISTDIR)/$(PACKAGE_NAME) |
14 | tar --exclude=.git --exclude=$(DISTDIR) -cf - * | (cd $(DISTDIR)/$(PACKAGE_NAME) && tar xf -) | 14 | tar --exclude=.git --exclude=$(DISTDIR) -cf - * | (cd $(DISTDIR)/$(PACKAGE_NAME) && tar xf -) |
15 | cd $(DISTDIR) && tar -czf $(TARBALL) $(PACKAGE_NAME) | 15 | cd $(DISTDIR) && tar -czf $(TARBALL) $(PACKAGE_NAME) |
16 | rm -r $(DISTDIR)/$(PACKAGE_NAME) | 16 | rm -r $(DISTDIR)/$(PACKAGE_NAME) |
@@ -168,14 +168,9 @@ ul.message-list li { | @@ -168,14 +168,9 @@ ul.message-list li { | ||
168 | 168 | ||
169 | 169 | ||
170 | /* Forms */ | 170 | /* Forms */ |
171 | -.required label:before { | ||
172 | - color: #f00; | ||
173 | - content: "* "; | ||
174 | -} | ||
175 | - | ||
176 | form.signup .form-group { | 171 | form.signup .form-group { |
177 | - width: 90%; | ||
178 | - margin-left: 0.5em; | 172 | + margin-left: 0px; |
173 | + margin-right: 22px; | ||
179 | } | 174 | } |
180 | 175 | ||
181 | div.submit { | 176 | div.submit { |
@@ -517,3 +512,79 @@ span.highlighted { | @@ -517,3 +512,79 @@ span.highlighted { | ||
517 | padding: 40px 0 60px 0; | 512 | padding: 40px 0 60px 0; |
518 | color: #172738; | 513 | color: #172738; |
519 | } | 514 | } |
515 | + | ||
516 | +.colab-content { | ||
517 | + max-width: 960px; | ||
518 | + min-width: 960px; | ||
519 | + padding: 40px 0 60px 0; | ||
520 | +} | ||
521 | + | ||
522 | +.colab-content h2{ | ||
523 | + color: #FF0366; | ||
524 | + font-size: 16px; | ||
525 | + font-family: "open_sansregular",Arial, Helvetica,sans-serif; | ||
526 | + font-weight: 300; | ||
527 | + text-transform: uppercase; | ||
528 | +} | ||
529 | + | ||
530 | +.colab-content h1{ | ||
531 | + padding: 5px 0 10px 0; | ||
532 | + border-bottom: 1px solid #D3D6DE; | ||
533 | + font-family: Arial, Helvetica, sans-serif; | ||
534 | + font-size: 35px; | ||
535 | + font-variant: normal; | ||
536 | + font-weight: bold; | ||
537 | +} | ||
538 | + | ||
539 | +h4.help-pane-title { | ||
540 | + font-family: Arial; | ||
541 | + color: #172738; | ||
542 | +} | ||
543 | + | ||
544 | +#btn-cadastrar { | ||
545 | + text-transform: uppercase; | ||
546 | + font-weight: bold; | ||
547 | + padding: 5px 27px 5px 27px; | ||
548 | +} | ||
549 | + | ||
550 | +.control-label { | ||
551 | + font-family: Arial; | ||
552 | + font-weight: normal; | ||
553 | + font-size: 16px; | ||
554 | +} | ||
555 | + | ||
556 | +form.signup { | ||
557 | + padding-top: 30px; | ||
558 | +} | ||
559 | + | ||
560 | +.signup .form-group:nth-child(5), | ||
561 | +.signup .form-group:nth-child(6) { | ||
562 | + width: 45%; | ||
563 | +} | ||
564 | + | ||
565 | +.signup .form-group:nth-child(5) { | ||
566 | + float: left; | ||
567 | +} | ||
568 | + | ||
569 | +.signup .form-group:nth-child(6) { | ||
570 | + float: right; | ||
571 | +} | ||
572 | + | ||
573 | +.signup div.form-group.alert { | ||
574 | + padding: 0px 10px 10px 10px; | ||
575 | +} | ||
576 | + | ||
577 | +.signup div.form-group.alert ul.errorlist { | ||
578 | + padding-left: 15px; | ||
579 | +} | ||
580 | + | ||
581 | +.signup-help { | ||
582 | + font-size: 16px; | ||
583 | + font-family: Arial; | ||
584 | + padding-top: 7px; | ||
585 | + | ||
586 | + } | ||
587 | + | ||
588 | +a.btn { | ||
589 | + margin: 2px 0 2px 0; | ||
590 | +} |
1 | 1 | ||
2 | -.search-form { | 2 | +.colab-search-form { |
3 | margin-top: 28px; | 3 | margin-top: 28px; |
4 | padding-top: 0px; | 4 | padding-top: 0px; |
5 | padding-bottom: 15px; | 5 | padding-bottom: 15px; |
@@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
10 | border: 1px solid #d3d6de; | 10 | border: 1px solid #d3d6de; |
11 | } | 11 | } |
12 | 12 | ||
13 | -.search-title { | 13 | +.colab-search-title { |
14 | color: #3e67b1; | 14 | color: #3e67b1; |
15 | margin: 5px 0px 3px; | 15 | margin: 5px 0px 3px; |
16 | padding: 16px 0px 0px 0px; | 16 | padding: 16px 0px 0px 0px; |
@@ -20,7 +20,7 @@ | @@ -20,7 +20,7 @@ | ||
20 | text-transform: uppercase; | 20 | text-transform: uppercase; |
21 | } | 21 | } |
22 | 22 | ||
23 | -.search-input { | 23 | +.colab-search-input { |
24 | width: 100%; | 24 | width: 100%; |
25 | padding: 7px; | 25 | padding: 7px; |
26 | font-size: 14px; | 26 | font-size: 14px; |
@@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
30 | border: 1px solid #d3d6de; | 30 | border: 1px solid #d3d6de; |
31 | } | 31 | } |
32 | 32 | ||
33 | -.search-blue { | 33 | +.colab-search-blue { |
34 | background: #3e67b1; | 34 | background: #3e67b1; |
35 | color: white; | 35 | color: white; |
36 | width: auto; | 36 | width: auto; |
@@ -43,6 +43,21 @@ | @@ -43,6 +43,21 @@ | ||
43 | font-size: 14px; | 43 | font-size: 14px; |
44 | } | 44 | } |
45 | 45 | ||
46 | +.colab-search-results div.container div.row h4 a { | ||
47 | + font-size: 19px; | ||
48 | + font-weight: 700; | ||
49 | + line-height: 21px; | ||
50 | +} | ||
51 | + | ||
52 | +.colab-search-results div.container div.row a { | ||
53 | + color: #172738; | ||
54 | + text-decoration: none; | ||
55 | +} | ||
56 | + | ||
57 | +.colab-search-results div.container div.row a:hover { | ||
58 | + text-decoration: none; | ||
59 | +} | ||
60 | + | ||
46 | .btn:hover { | 61 | .btn:hover { |
47 | color: white; | 62 | color: white; |
48 | } | 63 | } |
@@ -59,4 +74,9 @@ | @@ -59,4 +74,9 @@ | ||
59 | font-size: 14px; | 74 | font-size: 14px; |
60 | font-family: Arial; | 75 | font-family: Arial; |
61 | font-weight: bold; | 76 | font-weight: bold; |
62 | -} | ||
63 | \ No newline at end of file | 77 | \ No newline at end of file |
78 | +} | ||
79 | + | ||
80 | +.colab-result-register { | ||
81 | + display: block; | ||
82 | + padding-top: 40px; | ||
83 | +} |
@@ -0,0 +1,45 @@ | @@ -0,0 +1,45 @@ | ||
1 | +{% extends 'base.html' %} | ||
2 | +{% load i18n gravatar %} | ||
3 | + | ||
4 | +{% block main-content %} | ||
5 | + <div class="colab-content container"> | ||
6 | + <h2>Inscreva-se nas listas de discussão</h2> | ||
7 | + <h3>{% gravatar user_.email 50 %} {{ user_.get_full_name }} ({{ user_.username }})</h3> | ||
8 | + <br> | ||
9 | + | ||
10 | + <form method='post'> | ||
11 | + {% csrf_token %} | ||
12 | + | ||
13 | + <div class="row"> | ||
14 | + {% for email, lists in membership.items %} | ||
15 | + <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12"> | ||
16 | + <div class="panel panel-default"> | ||
17 | + <div class="panel-heading"> | ||
18 | + <h3 class="panel-title">{{ email }}</h3> | ||
19 | + </div> | ||
20 | + <div class="panel-body"> | ||
21 | + {% for list, checked in lists %} | ||
22 | + <div class="checkbox" title="{{ list.description }}"> | ||
23 | + <label> | ||
24 | + <input name="{{ email }}" value="{{ list.listname }}" type="checkbox" {% if checked %}checked{% endif%}>{{ list.listname }}</input> | ||
25 | + </label> | ||
26 | + </div> | ||
27 | + {% endfor %} | ||
28 | + </div> | ||
29 | + </div> | ||
30 | + </div> | ||
31 | + {% endfor %} | ||
32 | + </div> | ||
33 | + | ||
34 | + <div class="row"> | ||
35 | + <div class="col-md-12"> | ||
36 | + <button class="btn btn-lg btn-primary" type="submit">{% trans 'Update subscriptions' %}</button> | ||
37 | + </div> | ||
38 | + </div> | ||
39 | + | ||
40 | + </form> | ||
41 | + | ||
42 | + <br><br> | ||
43 | + <br><br> | ||
44 | + </div> | ||
45 | +{% endblock %} |
@@ -0,0 +1,38 @@ | @@ -0,0 +1,38 @@ | ||
1 | +{% extends "base.html" %} | ||
2 | +{% load i18n %} | ||
3 | +{% block main-content %} | ||
4 | +<div class="colab-content container"> | ||
5 | + <h2>Cadastre-se</h2> | ||
6 | + <h1>Informações pessoais</h1> | ||
7 | + | ||
8 | + <form action="{% url "signup" %}" method="post" role="form" class="form-horizontal signup"> | ||
9 | + {% csrf_token %} | ||
10 | + <div class="row"> | ||
11 | + <div class="col-md-6 col-lg-6 col-sm-6 col-xs-12"> | ||
12 | + <fieldset> | ||
13 | + {% for field in user_form %} | ||
14 | + <div class="form-group{% if field.field.required %} required{% endif %}{% if field.errors %} alert alert-danger has-error{% endif %}"> | ||
15 | + <label for="{{ field.name }}" class="control-label"> | ||
16 | + {{ field.label }} | ||
17 | + </label> | ||
18 | + {{ field }} | ||
19 | + {{ field.errors }} | ||
20 | + </div> | ||
21 | + {% endfor %} | ||
22 | + </fieldset> | ||
23 | + | ||
24 | + <input type="submit" value="Cadastrar" id="btn-cadastrar" class="btn btn-primary"> | ||
25 | + </div> | ||
26 | + <div class="col-md-6 col-lg-6 col-sm-6 col-xs-12"> | ||
27 | + <div style="border-left: 1px solid #ccc; padding-left: 52px; min-height: 450px"> | ||
28 | + <div class="signup-help"> | ||
29 | + <p>Em caso de dúvidas visite a seção de <a href="/social/spb/ajuda#faq">Ajuda</a></p> | ||
30 | + <hr> | ||
31 | + <p>Caso ainda permaneça com dúvidas, fique à vontade para entrar em contato conosco através do email <a href="mailto:admin@softwarepublico.gov.br">admin@softwarepublico.gov.br</a></p> | ||
32 | + </div> | ||
33 | + </div> | ||
34 | + </div> | ||
35 | + </div> | ||
36 | + </form> | ||
37 | +</div> | ||
38 | +{% endblock %} |
@@ -0,0 +1,164 @@ | @@ -0,0 +1,164 @@ | ||
1 | +{% extends "base.html" %} | ||
2 | + | ||
3 | +{% load i18n gravatar %} | ||
4 | + | ||
5 | +{% block title %}Perfil{% endblock %} | ||
6 | + | ||
7 | +{% block head_js %} | ||
8 | + {% trans "Messages" as group_collabs %} | ||
9 | + {% trans "Contributions" as type_collabs %} | ||
10 | + | ||
11 | + {% include "doughnut-chart.html" with chart_data=type_count chart_canvas="collabs" name=type_collabs %} | ||
12 | + {% include "doughnut-chart.html" with chart_data=list_activity chart_canvas="collabs2" name=group_collabs %} | ||
13 | +{% endblock %} | ||
14 | + | ||
15 | +{% block main-content %} | ||
16 | + <div class="colab-content container"> | ||
17 | + <div id="user-profile" class="row"> | ||
18 | + <div class="colab-vcard col-lg-4 col-md-4 col-sm-5"> | ||
19 | + <div class="thumbnail"> | ||
20 | + {% gravatar user_.email 200 %} | ||
21 | + </div> | ||
22 | + | ||
23 | + <h1> | ||
24 | + <span>{{ user_.get_full_name }}</span> | ||
25 | + <em>{{ user_.username }}</em> | ||
26 | + </h1> | ||
27 | + | ||
28 | + {% if request.user == user_ or request.user.is_superuser %} | ||
29 | + <a class="btn btn-info" href="{% url 'user_profile_update' user_ %}"><span class="glyphicon glyphicon-pencil"></span> {% trans "edit profile"|title %}</a> | ||
30 | + <a class="btn btn-info" href="{% url 'user_list_subscriptions' user_ %}"><span class="glyphicon glyphicon-pencil"></span> Inscreva-se nas listas de discussão</a> | ||
31 | + {% endif %} | ||
32 | + | ||
33 | + {% if request.user.is_active %} | ||
34 | + {% if user_.bio %} | ||
35 | + <div class="divider"></div> | ||
36 | + <ul class="unstyled-list"> | ||
37 | + <li> | ||
38 | + <strong>{% trans 'Bio' %}</strong> | ||
39 | + </li> | ||
40 | + <li class="text-muted"> {{ user_.bio }}</li> | ||
41 | + </ul> | ||
42 | + {% endif %} | ||
43 | + {% endif %} | ||
44 | + | ||
45 | + <div class="divider"></div> | ||
46 | + {% if request.user.is_active %} | ||
47 | + <ul class="unstyled-list"> | ||
48 | + <li><span class="icon-envelope icon-fixed-width"></span> <a href="mailto:{{ user_.email }}">{{ user_.email }}</a></li> | ||
49 | + </ul> | ||
50 | + <div class="divider"></div> | ||
51 | + {% endif %} | ||
52 | + | ||
53 | + <ul class="unstyled-list"> | ||
54 | + {% if user_.institution or user_.role %} | ||
55 | + <li> | ||
56 | + <span class="icon-briefcase icon-fixed-width"></span> | ||
57 | + {{ user_.role }} | ||
58 | + {% if user_.institution and user_.role %}-{% endif %} | ||
59 | + {{ user_.institution }} | ||
60 | + </li> | ||
61 | + {% endif %} | ||
62 | + {% if request.user.is_active %} | ||
63 | + {% if SOCIAL_NETWORK_ENABLED %} | ||
64 | + <li> | ||
65 | + {% if user_.twitter %} | ||
66 | + <span class="icon-twitter icon-fixed-width" title="{% trans 'Twitter account' %}"></span> <a target="_blank" href="{{ user_.twitter_link }}" title="{% trans 'Twitter account' %}">{{ user_.twitter }}</a> | ||
67 | + {% endif %} | ||
68 | + {% if user_.facebook %} | ||
69 | + <span class="icon-facebook icon-fixed-width" title="{% trans 'Facebook account' %}"></span> <a target="_blank" href="{{ user_.facebook_link }}" title="{% trans 'Facebook account' %}">{{ user_.facebook }}</a> | ||
70 | + {% endif %} | ||
71 | + </li> | ||
72 | + | ||
73 | + {% if user_.google_talk %} | ||
74 | + <li><span class="icon-google-plus icon-fixed-width" title="{% trans 'Google talk account' %}"></span> {{ user_.google_talk }}</li> | ||
75 | + {% endif %} | ||
76 | + | ||
77 | + {% if user_.github %} | ||
78 | + <li><span class="icon-github icon-fixed-width" title="{% trans 'Github account' %}"></span> <a target="_blank" href="https://github.com/{{ user_.github }}">{{ user_.github }}</a></li> | ||
79 | + {% endif %} | ||
80 | + | ||
81 | + {% if user_.webpage %} | ||
82 | + <li><span class="icon-link icon-fixed-width" title="{% trans 'Personal webpage' %}"></span> <a target="_blank" href="{{ user_.webpage }}" title="{% trans 'Personal webpage' %}">{{ user_.webpage }}</a></li> | ||
83 | + {% endif %} | ||
84 | + {% endif %} | ||
85 | + {% endif %} | ||
86 | + </ul> | ||
87 | + {% if user_.mailinglists %} | ||
88 | + <b>Listas de discussão</b> | ||
89 | + {% for list in user_.mailinglists %} | ||
90 | + <a href="{% url 'haystack_search' %}?order=latest&type=thread&list={{ list }}"><span class="label label-primary">{{ list }}</span></a> | ||
91 | + {% endfor %} | ||
92 | + {% endif %} | ||
93 | + | ||
94 | + <div class="divider"></div> | ||
95 | + | ||
96 | + </div> | ||
97 | + | ||
98 | + <div class="col-lg-4 col-md-4 col-sm-7"> | ||
99 | + <div class="panel panel-default"> | ||
100 | + <div class="panel-heading"> | ||
101 | + <h3 class="panel-title">{% trans "Collaborations by Type" %}</h3> | ||
102 | + </div> | ||
103 | + <div class="panel-body"> | ||
104 | + <div id="collabs"></div> | ||
105 | + <div class="chart collabs"> | ||
106 | + <canvas width="200" height="200"></canvas> | ||
107 | + <p></p> | ||
108 | + </div> | ||
109 | + </div> | ||
110 | + </div> | ||
111 | + </div> | ||
112 | + | ||
113 | + | ||
114 | + <div class="col-lg-4 col-md-4 col-sm-7"> | ||
115 | + <div class="panel panel-default"> | ||
116 | + <div class="panel-heading"> | ||
117 | + <h3 class="panel-title">Participação por lista de discussão</h3> | ||
118 | + </div> | ||
119 | + <div class="panel-body"> | ||
120 | + <div class="chart collabs2"> | ||
121 | + <canvas width="200" height="200"></canvas> | ||
122 | + <p></p> | ||
123 | + </div> | ||
124 | + </div> | ||
125 | + </div> | ||
126 | + </div> | ||
127 | + | ||
128 | + </div> <!-- End of user-profile row --> | ||
129 | + | ||
130 | + <div class="row"> | ||
131 | + | ||
132 | + <div class="col-lg-6 col-md-6 col-sm-12"> | ||
133 | + <h3>{% trans "Latest posted" %} </h3> | ||
134 | + <ul class="message-list"> | ||
135 | + {% for doc in emails %} | ||
136 | + {% include "message-preview.html" with result=doc %} | ||
137 | + {% empty %} | ||
138 | + <li>{% trans "There are no posts by this user so far." %}</li> | ||
139 | + {% endfor %} | ||
140 | + </ul> | ||
141 | + <a href="{% url 'haystack_search' %}?type=thread&author={{ user_.username }}"> | ||
142 | + {% trans "View more posts..." %} | ||
143 | + </a> | ||
144 | + <div> </div> | ||
145 | + </div> | ||
146 | + | ||
147 | + <div class="col-lg-6 col-md-6 col-sm-12"> | ||
148 | + <h3>{% trans "Latest contributions" %}</h3> | ||
149 | + <ul class="message-list"> | ||
150 | + {% for result in results %} | ||
151 | + {% include "message-preview.html" %} | ||
152 | + {% empty %} | ||
153 | + <li>{% trans "No contributions of this user so far." %}</li> | ||
154 | + {% endfor %} | ||
155 | + </ul> | ||
156 | + <a href="{% url 'haystack_search' %}?order=latest&collaborators={{ user_.username }}"> | ||
157 | + {% trans "View more contributions..." %} | ||
158 | + </a> | ||
159 | + <div> </div> | ||
160 | + </div> | ||
161 | + | ||
162 | + </div> | ||
163 | + </div> | ||
164 | +{% endblock %} |
@@ -135,9 +135,19 @@ | @@ -135,9 +135,19 @@ | ||
135 | </div> | 135 | </div> |
136 | <div id="sobre"> | 136 | <div id="sobre"> |
137 | <ul> | 137 | <ul> |
138 | - <li id="softwarepublico-groups" class="softwarepublico-item"> | ||
139 | - <a href="{% url 'thread_list' %}" title="Listas de discussão">Listas de discussão</a> | ||
140 | - </li> | 138 | + {% if not user.is_authenticated %} |
139 | + <li id="softwarepublico-groups" class="softwarepublico-item"> | ||
140 | + <a href="{% url 'thread_list' %}" title="Listas de discussão">Listas de discussão</a> | ||
141 | + </li> | ||
142 | + {% else %} | ||
143 | + <li class="dropdown softwarepublico-item"> | ||
144 | + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Listas de discussão <b class="caret"></b></a> | ||
145 | + <ul class="dropdown-menu"> | ||
146 | + <li><a href="{% url 'thread_list' %}">Acesse todas as listas</a></li> | ||
147 | + <li><a href="{% url 'user_list_subscriptions' user %}">Inscreva-se nas listas</a></li> | ||
148 | + </ul> | ||
149 | + </li> | ||
150 | + {% endif %} | ||
141 | {% plugins_menu %} | 151 | {% plugins_menu %} |
142 | <li id="softwarepublico-perguntas-frequentes" class="softwarepublico-item"> | 152 | <li id="softwarepublico-perguntas-frequentes" class="softwarepublico-item"> |
143 | <a href="/social/spb/ajuda" title="Perguntas frequentes">Perguntas frequentes</a> | 153 | <a href="/social/spb/ajuda" title="Perguntas frequentes">Perguntas frequentes</a> |
1 | {% extends "base.html" %} | 1 | {% extends "base.html" %} |
2 | -{% load i18n highlight superarchives %} | 2 | +{% load i18n tz highlight superarchives search_preview_templates %} |
3 | {% load static from staticfiles %} | 3 | {% load static from staticfiles %} |
4 | 4 | ||
5 | {% block title %}{% trans 'search'|title %}{% endblock %} | 5 | {% block title %}{% trans 'search'|title %}{% endblock %} |
@@ -30,20 +30,20 @@ | @@ -30,20 +30,20 @@ | ||
30 | {% endblock %} | 30 | {% endblock %} |
31 | 31 | ||
32 | {% block main-content %} | 32 | {% block main-content %} |
33 | -<div class="search-results" style="width: 980px;margin: auto;"> | 33 | +<div class="colab-search-results" style="width: 980px;margin: auto;"> |
34 | 34 | ||
35 | <form accept-charset="UTF-8" action="/search/" method="get"> | 35 | <form accept-charset="UTF-8" action="/search/" method="get"> |
36 | <div class="container"> | 36 | <div class="container"> |
37 | <div class="row"> | 37 | <div class="row"> |
38 | <div class="col-md-12"> | 38 | <div class="col-md-12"> |
39 | - <div class="search-form"> | ||
40 | - <h3 class="search-title"> {% trans "BUSCAR NO PORTAL" %} </h3> | ||
41 | - <div class="search-field"> | 39 | + <div class="colab-search-form"> |
40 | + <h3 class="colab-search-title"> {% trans "BUSCAR NO PORTAL" %} </h3> | ||
41 | + <div class="colab-search-field"> | ||
42 | <span class="formfield"> | 42 | <span class="formfield"> |
43 | - <input class="search-input" id="search-input" name="q" value="" type="text"> | 43 | + <input class="colab-search-input" id="search-input" name="q" value="{{ request.GET.q }}" type="text"> |
44 | </span> | 44 | </span> |
45 | </div> | 45 | </div> |
46 | - <input class="btn search-blue with-text icon-search submit" name="commit" value="Buscar" type="submit"> | 46 | + <input class="btn colab-search-blue with-text icon-search submit" name="commit" value="Buscar" type="submit"> |
47 | </div> | 47 | </div> |
48 | </div> | 48 | </div> |
49 | </div> | 49 | </div> |
@@ -63,9 +63,9 @@ | @@ -63,9 +63,9 @@ | ||
63 | <select name="order" id="order_option" onchange="this.form.submit()"> | 63 | <select name="order" id="order_option" onchange="this.form.submit()"> |
64 | {% for option, dict_order in order_data.items %} | 64 | {% for option, dict_order in order_data.items %} |
65 | {% ifequal request.GET.order option %} | 65 | {% ifequal request.GET.order option %} |
66 | - <option value="{{option}}" selected>{% trans option %}</option> | 66 | + <option value="{{option}}" selected>{% trans dict_order.name %}</option> |
67 | {% else %} | 67 | {% else %} |
68 | - <option value="{{option}}">{% trans option %}</option> | 68 | + <option value="{{option}}">{% trans dict_order.name %}</option> |
69 | {% endifequal %} | 69 | {% endifequal %} |
70 | {% endfor %} | 70 | {% endfor %} |
71 | </select> | 71 | </select> |
@@ -80,7 +80,8 @@ | @@ -80,7 +80,8 @@ | ||
80 | <div class="col-md-12 col-lg-12"> | 80 | <div class="col-md-12 col-lg-12"> |
81 | <div class="container"> | 81 | <div class="container"> |
82 | {% for result in page.object_list %} | 82 | {% for result in page.object_list %} |
83 | - {% include "message-preview.html" %} | 83 | + {% get_search_preview_templates result as template_target %} |
84 | + {% include template_target %} | ||
84 | {% empty %} | 85 | {% empty %} |
85 | <ul class="list-unstyled"> | 86 | <ul class="list-unstyled"> |
86 | <li class="text-center"> | 87 | <li class="text-center"> |
@@ -144,4 +145,4 @@ | @@ -144,4 +145,4 @@ | ||
144 | 145 | ||
145 | </div> | 146 | </div> |
146 | </div> | 147 | </div> |
147 | -{% endblock main-content %} | ||
148 | \ No newline at end of file | 148 | \ No newline at end of file |
149 | +{% endblock main-content %} |
@@ -0,0 +1,101 @@ | @@ -0,0 +1,101 @@ | ||
1 | +{% extends 'base.html' %} | ||
2 | +{% load i18n %} | ||
3 | + | ||
4 | +{% block title %}Listas de discussão{% endblock %} | ||
5 | + | ||
6 | +{% block main-content %} | ||
7 | + <div class="colab-content container"> | ||
8 | + <h2>Listas de discussão</h2> | ||
9 | + <hr/> | ||
10 | + | ||
11 | + {% for mailinglist in lists %} | ||
12 | + {% if mailinglist.get_latest or mailinglist.get_most_relevant %} | ||
13 | + <h3><b>{{ mailinglist.name|title|lower }} {% if mailinglist.description %} ({{ mailinglist.description }}){% endif %}</b></h3> | ||
14 | + <div class="btn-group btn-group-sm"> | ||
15 | + <a href="#" class="btn btn-default" disabled="disabled">{% blocktrans with number_of_users=mailinglist.get_number_of_users %}{{ number_of_users }} members{% endblocktrans %}</a> | ||
16 | + </div> | ||
17 | + <hr/> | ||
18 | + | ||
19 | + <div class="row"> | ||
20 | + <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12"> | ||
21 | + <h4>{% trans 'latest'|title %}</h4> | ||
22 | + <ul class="message-list"> | ||
23 | + {% for thread in mailinglist.get_latest %} | ||
24 | + {% include "message-preview.html" with result=thread.latest_message %} | ||
25 | + {% endfor %} | ||
26 | + </ul> | ||
27 | + <div class="text-right"> | ||
28 | + <a href="{% url 'haystack_search' %}?order=latest&list={{ mailinglist.name }}&type=thread"> | ||
29 | + {% trans "more..." %} | ||
30 | + </a> | ||
31 | + </div> | ||
32 | + </div> | ||
33 | + | ||
34 | + <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12"> | ||
35 | + <h4>{% trans 'most relevant'|title %}</h4> | ||
36 | + <ul class="message-list"> | ||
37 | + {% for thread in mailinglist.get_most_relevant %} | ||
38 | + {% include "message-preview.html" with result=thread %} | ||
39 | + {% endfor %} | ||
40 | + </ul> | ||
41 | + <div class="text-right"> | ||
42 | + <a href="{% url 'haystack_search' %}?list={{ mailinglist.name }}&type=thread"> | ||
43 | + {% trans "more..." %} | ||
44 | + </a> | ||
45 | + </div> | ||
46 | + </div> | ||
47 | + </div> | ||
48 | + | ||
49 | + | ||
50 | + {% endif %} | ||
51 | + {% endfor %} | ||
52 | + | ||
53 | + {% if page_obj.has_other_pages %} | ||
54 | + <div class="text-center"> | ||
55 | + <ul class="pagination"> | ||
56 | + <li {% if page_obj.number == 1 %}class="disabled"{% endif %}> | ||
57 | + <a href="{% if page_obj.number == 1 %}javascript:void(0);{% else %}?page={{1}}{% endif %}"><span class="glyphicon glyphicon-chevron-left small-icon"></span><span class="glyphicon glyphicon-chevron-left small-icon"></span></a> | ||
58 | + </li> | ||
59 | + <li {% if not page_obj.has_previous %}class="disabled"{% endif %}> | ||
60 | + <a href="{% if page_obj.has_previous %}?page={{page_obj.previous_page_number }}{% else %}javascript:void(0);{% endif %}"><span class="glyphicon glyphicon-chevron-left small-icon"></span></a> | ||
61 | + </li> | ||
62 | + | ||
63 | + {% if page_obj.has_previous %} | ||
64 | + {% if page_obj.previous_page_number > 1 %} | ||
65 | + <li> | ||
66 | + <a href="?page={{page_obj.previous_page_number|add:-2 }}">{{ page_obj.number|add:-2 }}</a> | ||
67 | + </li> | ||
68 | + {% endif %} | ||
69 | + <li> | ||
70 | + <a href="?page={{page_obj.previous_page_number }}">{{ page_obj.number|add:-1 }}</a> | ||
71 | + </li> | ||
72 | + {% endif %} | ||
73 | + | ||
74 | + <li class="active"> | ||
75 | + <a href="javascript:void(0);">{{ page_obj.number }}</a> | ||
76 | + </li> | ||
77 | + | ||
78 | + {% if page_obj.has_next %} | ||
79 | + <li> | ||
80 | + <a href="?page={{page_obj.next_page_number }}">{{ page_obj.number|add:1 }}</a> | ||
81 | + </li> | ||
82 | + {% if page_obj.next_page_number < page_obj.paginator.num_pages %} | ||
83 | + <li> | ||
84 | + <a href="?page={{page_obj.next_page_number|add:1 }}">{{ page_obj.number|add:2 }}</a> | ||
85 | + </li> | ||
86 | + {% endif %} | ||
87 | + {% endif %} | ||
88 | + | ||
89 | + <li {% if not page_obj.has_next %}class="disabled"{% endif %}> | ||
90 | + <a href="{% if page_obj.has_next %}?page={{page_obj.next_page_number }}{% else %}javascript:void(0);{% endif %}"><span class="glyphicon glyphicon-chevron-right small-icon"></span></a> | ||
91 | + </li> | ||
92 | + | ||
93 | + <li {% if page_obj.number == page_obj.paginator.num_pages %}class="disabled"{% endif %}> | ||
94 | + <a href="{% if page_obj.number == page_obj.paginator.num_pages %}javascript:void(0);{% else %}?page={{page_obj.paginator.num_pages }}{% endif %}"><span class="glyphicon glyphicon-chevron-right small-icon"></span><span class="glyphicon glyphicon-chevron-right small-icon"></span></a> | ||
95 | + </li> | ||
96 | + | ||
97 | + </ul> | ||
98 | + </div> | ||
99 | + {% endif %} | ||
100 | + </div> | ||
101 | +{% endblock %} |
1 | PACKAGE = noosfero-spb | 1 | PACKAGE = noosfero-spb |
2 | -VERSION = $(shell cat VERSION) | 2 | +VERSION = 4.2.7 |
3 | DISTDIR = $(PACKAGE)-$(VERSION) | 3 | DISTDIR = $(PACKAGE)-$(VERSION) |
4 | TARBALL = $(DISTDIR).tar.gz | 4 | TARBALL = $(DISTDIR).tar.gz |
5 | 5 | ||
@@ -11,10 +11,9 @@ themes_dir=/usr/lib/noosfero/public/designs/themes | @@ -11,10 +11,9 @@ themes_dir=/usr/lib/noosfero/public/designs/themes | ||
11 | noosfero_dir=/usr/lib/noosfero | 11 | noosfero_dir=/usr/lib/noosfero |
12 | 12 | ||
13 | dist: clean | 13 | dist: clean |
14 | - mkdir -p dist/$(DISTDIR) | ||
15 | - tar --exclude=.git --exclude=$(DISTDIR) -cf - * | (cd dist/$(DISTDIR) && tar xaf -) | ||
16 | - cd dist && tar --exclude=.git -czf $(TARBALL) $(DISTDIR) | ||
17 | - $(RM) -r dist/$(DISTDIR) | 14 | + mkdir $(DISTDIR) |
15 | + tar --exclude=.git --exclude=$(DISTDIR) -cf - * | (cd $(DISTDIR) && tar xaf -) | ||
16 | + tar --exclude=.git -czf $(TARBALL) $(DISTDIR) | ||
18 | 17 | ||
19 | clean: | 18 | clean: |
20 | $(RM) -r dist/ | 19 | $(RM) -r dist/ |
@@ -1,7 +0,0 @@ | @@ -1,7 +0,0 @@ | ||
1 | -<ul id="cat_menu"> | ||
2 | - <% @environment.top_level_categories.find(:all, :conditions => {:display_in_menu => true}).each do |item| %> | ||
3 | - <li id="category category_<%= item.path %>" > | ||
4 | - <%= link_to(item.name, {:controller => :search, :action => 'category_index', :category_path => item.path }, :title => item.name, :style=>"color: ##{item.display_color || '000000'}" ) %> | ||
5 | - </li> | ||
6 | - <% end %> | ||
7 | -</ul><!-- fim id="cat_menu" --> |
9.42 KB
70.1 KB
174 KB
3.75 KB
18.5 KB
567 Bytes
548 Bytes
230 Bytes
2.54 KB
179 Bytes
187 Bytes
173 Bytes
14.3 KB
245 KB
159 Bytes
1.02 KB
3.01 KB
1.47 KB
3.13 KB
884 Bytes
856 Bytes
95.1 KB
142 Bytes
216 Bytes
35 Bytes
43 Bytes
305 Bytes
127 Bytes
128 Bytes
1.85 KB
969 Bytes
333 Bytes
969 Bytes
1.01 KB
2.85 KB
3.12 KB
445 Bytes
448 Bytes
174 Bytes
648 Bytes
648 Bytes
2.17 KB
52 KB
771 Bytes
391 Bytes
5.21 KB
579 Bytes
23.7 KB
26.3 KB
245 Bytes
877 Bytes
2.46 KB
624 Bytes
538 Bytes
2.09 KB
190 Bytes
1.71 KB
642 Bytes
182 KB
2.04 KB
@@ -1,23 +0,0 @@ | @@ -1,23 +0,0 @@ | ||
1 | -<?xml version="1.0" encoding="iso-8859-1"?> | ||
2 | -<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | ||
3 | -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
4 | -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | ||
5 | - width="32px" height="32px" viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve"> | ||
6 | -<circle id="circle_x5F_bg_17_" style="fill:#CF4832;" cx="16" cy="16" r="16.005"/> | ||
7 | -<g> | ||
8 | - <polygon style="fill:#FFFFFF;" points="24.376,9.896 22.499,9.896 22.499,13.646 18.747,13.646 18.747,15.523 22.499,15.523 | ||
9 | - 22.499,19.273 24.376,19.273 24.376,15.523 28.126,15.523 28.126,13.646 24.376,13.646 "/> | ||
10 | -</g> | ||
11 | -<g> | ||
12 | - <path style="fill:#FFFFFF;" d="M14.933,25.068c-0.74-0.559-2.355-1.699-2.355-2.465c0-0.898,0.256-1.342,1.605-2.396 | ||
13 | - c1.387-1.082,2.367-2.51,2.367-4.279c0-1.93-0.789-3.678-2.27-4.527h2.102l1.787-1.879c0,0-5.91,0-8.008,0 | ||
14 | - c-4.061,0-7.447,2.996-7.447,6.291c0,3.367,2.225,6.051,6.045,6.051c0.264,0,0.523-0.01,0.775-0.027 | ||
15 | - C9.286,22.309,9.11,22.84,9.11,23.395c0,0.938,0.518,1.473,1.148,2.09c-0.48,0-0.941,0.01-1.449,0.01 | ||
16 | - c-1.805,0-3.395,0.486-4.67,1.254c0.396,0.436,0.814,0.85,1.254,1.238c1.1-0.949,2.709-1.561,4.471-1.541 | ||
17 | - c0.748,0.004,1.449,0.127,2.082,0.332c1.746,1.215,3.156,1.971,3.508,3.357c0.066,0.275,0.102,0.566,0.102,0.861 | ||
18 | - c0,0.34-0.033,0.666-0.098,0.982c0.174,0.006,0.342,0.025,0.518,0.025c0.639,0,1.264-0.047,1.883-0.119 | ||
19 | - c0.119-0.406,0.186-0.818,0.186-1.232C18.044,28.225,17.521,27.008,14.933,25.068z M10.306,20.645 | ||
20 | - c-2.156-0.066-4.209-2.049-4.58-4.881c-0.375-2.834,1.07-5.004,3.23-4.939c2.158,0.064,4.004,2.389,4.377,5.223 | ||
21 | - S12.464,20.707,10.306,20.645z"/> | ||
22 | -</g> | ||
23 | -</svg> |
43 Bytes
279 Bytes
349 Bytes
772 Bytes
674 Bytes
772 Bytes
674 Bytes
567 Bytes
424 Bytes
426 Bytes
357 Bytes
438 Bytes
438 Bytes
373 Bytes
374 Bytes
807 Bytes
1.05 KB
1.09 KB
1.14 KB
1.3 KB
741 Bytes
286 Bytes
283 Bytes
1.19 KB
569 Bytes
1.26 KB
1.29 KB
1.4 KB
1.75 KB
502 Bytes
19.5 KB
3.91 KB
1.66 KB
1.75 KB
2.17 KB
19.6 KB
905 Bytes
1.73 KB
1.08 KB
1.02 KB
2.56 KB
2.06 KB
15 KB
161 Bytes
993 Bytes
1.09 KB
43 Bytes
1018 Bytes
6.91 KB
2.58 KB
1.87 KB
2.3 KB
1.1 KB
3.62 KB
5.17 KB
3.33 KB
181 Bytes
800 Bytes
767 Bytes
811 Bytes
468 Bytes
702 Bytes
782 Bytes
737 Bytes
772 Bytes
1.23 KB
2.71 KB
1.83 KB
@@ -1,14 +0,0 @@ | @@ -1,14 +0,0 @@ | ||
1 | -<?xml version="1.0" encoding="iso-8859-1"?> | ||
2 | -<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> | ||
3 | -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
4 | -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" | ||
5 | - width="32px" height="32px" viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve"> | ||
6 | -<circle style="fill:#EF8647;" cx="16" cy="16.001" r="16"/> | ||
7 | -<g> | ||
8 | - <circle style="fill:#FFFFFF;" cx="10.617" cy="21.625" r="2.287"/> | ||
9 | - <path style="fill:#FFFFFF;" d="M19.385,23.912h-3.242c0-4.316-3.496-7.812-7.812-7.812l0,0v-3.242 | ||
10 | - C14.436,12.858,19.385,17.807,19.385,23.912z"/> | ||
11 | - <path style="fill:#FFFFFF;" d="M21.668,23.912c0-7.366-5.971-13.339-13.338-13.339V7.237c9.211,0,16.676,7.465,16.676,16.675 | ||
12 | - H21.668z"/> | ||
13 | -</g> | ||
14 | -</svg> |
1.18 KB
1.72 KB
1.18 KB
1.18 KB
2.03 KB
1.18 KB
2.03 KB
987 Bytes
747 Bytes
1002 Bytes
237 Bytes
1.18 KB
1.17 KB
1.18 KB
1.21 KB
1.18 KB
1.19 KB
1.23 KB
1.22 KB
1.19 KB
1.19 KB
1.2 KB
1.21 KB
1.13 KB
364 Bytes
157 Bytes
3.79 KB
1.44 KB
36.5 KB
5.53 KB
3.71 KB
4.44 KB
3.66 KB
153 Bytes
5.17 KB
608 Bytes
2.1 KB
754 Bytes
384 Bytes
4.96 KB
893 Bytes
983 Bytes
10.3 KB
1 | Summary: Collaboration platform for communities (Python dependencies) | 1 | Summary: Collaboration platform for communities (Python dependencies) |
2 | Name: colab-deps | 2 | Name: colab-deps |
3 | -Version: 1.11.6 | 3 | +Version: 1.12.7 |
4 | Release: 1 | 4 | Release: 1 |
5 | Source0: colab-deps-%{version}.tar.gz | 5 | Source0: colab-deps-%{version}.tar.gz |
6 | License: Various | 6 | License: Various |
@@ -7,7 +7,7 @@ License: GPL-3.0 | @@ -7,7 +7,7 @@ License: GPL-3.0 | ||
7 | Group: Applications/Publishing | 7 | Group: Applications/Publishing |
8 | Url: https://softwarepublico.gov.br/gitlab/softwarepublico/colab-spb-theme-plugin | 8 | Url: https://softwarepublico.gov.br/gitlab/softwarepublico/colab-spb-theme-plugin |
9 | Source0: %{name}-%{version}.tar.gz | 9 | Source0: %{name}-%{version}.tar.gz |
10 | -Requires: colab >= 1.11 | 10 | +Requires: colab >= 1.12.5 |
11 | BuildArch: noarch | 11 | BuildArch: noarch |
12 | 12 | ||
13 | %description | 13 | %description |
1 | %define name colab | 1 | %define name colab |
2 | -%define version 1.11.4 | 2 | +%define version 1.12.5 |
3 | %define buildvenv /var/tmp/%{name}-%{version} | 3 | %define buildvenv /var/tmp/%{name}-%{version} |
4 | 4 | ||
5 | Summary: Collaboration platform for communities | 5 | Summary: Collaboration platform for communities |
6 | Name: %{name} | 6 | Name: %{name} |
7 | Version: %{version} | 7 | Version: %{version} |
8 | -Release: 1 | 8 | +Release: 4 |
9 | Source0: %{name}-%{version}.tar.gz | 9 | Source0: %{name}-%{version}.tar.gz |
10 | License: GPLv2 | 10 | License: GPLv2 |
11 | Group: Development/Tools | 11 | Group: Development/Tools |
@@ -14,9 +14,8 @@ Prefix: %{_prefix} | @@ -14,9 +14,8 @@ Prefix: %{_prefix} | ||
14 | Vendor: Sergio Oliveira <sergio@tracy.com.br> | 14 | Vendor: Sergio Oliveira <sergio@tracy.com.br> |
15 | Url: https://github.com/colab/colab | 15 | Url: https://github.com/colab/colab |
16 | BuildArch: noarch | 16 | BuildArch: noarch |
17 | -BuildRequires: colab-deps >= 1.11.6, python-virtualenv | ||
18 | -# FIXME colab should not depend on nginx! | ||
19 | -Requires: colab-deps >= 1.11.6, solr, mailman-api >= 0.3rc3, nginx | 17 | +BuildRequires: colab-deps >= 1.12.7, python-virtualenv |
18 | +Requires: colab-deps >= 1.12.7, solr, mailman-api >= 0.3rc3 | ||
20 | 19 | ||
21 | %description | 20 | %description |
22 | Integrated software development platform. | 21 | Integrated software development platform. |
@@ -58,7 +57,7 @@ install -d -m 0755 %{buildroot}/var/log/colab | @@ -58,7 +57,7 @@ install -d -m 0755 %{buildroot}/var/log/colab | ||
58 | install -d -m 0755 %{buildroot}/var/lib/colab/celery | 57 | install -d -m 0755 %{buildroot}/var/lib/colab/celery |
59 | 58 | ||
60 | # Create assets dir (stores static files) | 59 | # Create assets dir (stores static files) |
61 | -install -d -m 0755 %{buildroot}/var/lib/colab/assets | 60 | +install -d -m 0755 %{buildroot}/var/lib/colab/assets/static |
62 | 61 | ||
63 | # install virtualenv | 62 | # install virtualenv |
64 | install -d -m 0755 %{buildroot}/usr/lib | 63 | install -d -m 0755 %{buildroot}/usr/lib |
@@ -94,20 +93,19 @@ rm -rf %{buildvenv} | @@ -94,20 +93,19 @@ rm -rf %{buildvenv} | ||
94 | %files | 93 | %files |
95 | %defattr(-, root, root) | 94 | %defattr(-, root, root) |
96 | 95 | ||
97 | -/usr/lib/colab | ||
98 | -#/var/lib/colab # XXX: remove if doesnt break | ||
99 | -%attr(-, colab, colab) /var/lib/colab/assets | 96 | +%attr(-, colab, colab) /var/lib/colab/assets/static |
100 | %attr(-, colab, colab) /var/lib/colab/celery | 97 | %attr(-, colab, colab) /var/lib/colab/celery |
101 | %attr(-, colab, colab) /var/log/colab | 98 | %attr(-, colab, colab) /var/log/colab |
102 | %{_bindir}/* | 99 | %{_bindir}/* |
103 | -/etc/cron.d/colab | ||
104 | -#/etc/colab # XXX: remove if doesnt break | ||
105 | -/etc/colab/settings.d | ||
106 | -/etc/colab/plugins.d | ||
107 | /etc/colab/gunicorn.py.example | 100 | /etc/colab/gunicorn.py.example |
108 | -/lib/systemd/system/colab.service | ||
109 | -/lib/systemd/system/celeryd.service | 101 | +/etc/colab/plugins.d |
102 | +/etc/colab/settings.d | ||
103 | +/etc/cron.d/colab | ||
110 | /lib/systemd/system/celerybeat.service | 104 | /lib/systemd/system/celerybeat.service |
105 | +/lib/systemd/system/celeryd.service | ||
106 | +/lib/systemd/system/colab.service | ||
107 | +/usr/lib/colab | ||
108 | +/var/lib/colab/assets | ||
111 | 109 | ||
112 | 110 | ||
113 | %pre | 111 | %pre |
@@ -215,9 +213,6 @@ EOF | @@ -215,9 +213,6 @@ EOF | ||
215 | chmod 0640 /etc/colab/settings.py | 213 | chmod 0640 /etc/colab/settings.py |
216 | fi | 214 | fi |
217 | 215 | ||
218 | -# FIXME colab should not depend on nginx | ||
219 | -ln -s /var/lib/colab/assets /usr/share/nginx/colab | ||
220 | - | ||
221 | colab-admin collectstatic --noinput | 216 | colab-admin collectstatic --noinput |
222 | 217 | ||
223 | if [ $1 -gt 1 ]; then | 218 | if [ $1 -gt 1 ]; then |
1 | Name: noosfero-spb | 1 | Name: noosfero-spb |
2 | -Version: 4.2.1 | ||
3 | -Release: 12.1 | 2 | +Version: 4.2.7 |
3 | +Release: 1 | ||
4 | Summary: SPB-specific Noosfero plugins and themes | 4 | Summary: SPB-specific Noosfero plugins and themes |
5 | Group: Applications/Publishing | 5 | Group: Applications/Publishing |
6 | License: AGPLv3 | 6 | License: AGPLv3 |
@@ -2,8 +2,8 @@ | @@ -2,8 +2,8 @@ | ||
2 | %define cache_dirs javascripts/cache stylesheets/cache | 2 | %define cache_dirs javascripts/cache stylesheets/cache |
3 | 3 | ||
4 | Name: noosfero | 4 | Name: noosfero |
5 | -Version: 1.3.1+spb2 | ||
6 | -Release: 6.1 | 5 | +Version: 1.3.5 |
6 | +Release: 1 | ||
7 | Summary: Social Networking Platform | 7 | Summary: Social Networking Platform |
8 | Group: Applications/Publishing | 8 | Group: Applications/Publishing |
9 | License: AGPLv3 | 9 | License: AGPLv3 |