Commit e5fb01d63bf2302ec6e002b831cf7223525f632c

Authored by Leandro Santos
2 parents e8e5c33a 1be73178

Merge branch 'master' into not_destroy_user_with_moderate_task

app/helpers/cms_helper.rb
... ... @@ -9,12 +9,6 @@ module CmsHelper
9 9 mime_type.gsub('/', '_').gsub('-', '')
10 10 end
11 11  
12   - def add_upload_file_field(name, locals)
13   - button_to_function :add, name, nil do |page|
14   - page.insert_html :bottom, :uploaded_files, CGI::escapeHTML(render(:partial => 'upload_file', :locals => locals, :object => UploadedFile.new))
15   - end
16   - end
17   -
18 12 def pagination_links(collection, options={})
19 13 options = {:previous_label => '« ', :next_label => ' »', :page_links => false}.merge(options)
20 14 will_paginate(collection, options)
... ...
app/models/add_friend.rb
... ... @@ -4,7 +4,7 @@ class AddFriend < Task
4 4  
5 5 validates_presence_of :requestor_id, :target_id
6 6  
7   - validates_uniqueness_of :target_id, :scope => [ :requestor_id ]
  7 + validates_uniqueness_of :target_id, scope: [ :requestor_id, :status ], if: proc{ |t| t.status == Task::Status::ACTIVE }
8 8  
9 9 validates_length_of :group_for_person, :group_for_friend, :maximum => 150, :allow_nil => true
10 10  
... ...
app/models/main_block.rb
... ... @@ -24,4 +24,10 @@ class MainBlock < Block
24 24 ['always', 'except_home_page']
25 25 end
26 26  
  27 + def display_user_options
  28 + @display_user_options = {
  29 + 'all' => _('All users')
  30 + }
  31 + end
  32 +
27 33 end
... ...
app/models/person.rb
... ... @@ -150,7 +150,7 @@ roles] }
150 150 end
151 151  
152 152 def already_request_friendship?(person)
153   - person.tasks.find_by_requestor_id(self.id, :conditions => { :type => 'AddFriend' })
  153 + person.tasks.where(requestor_id: self.id, type: 'AddFriend', status: Task::Status::ACTIVE).first
154 154 end
155 155  
156 156 def remove_friend(friend)
... ...
app/views/cms/_upload_file.html.erb
1 1 <p><%= file_field_tag('uploaded_files[]', :size => size) %></p>
2   -<%= javascript_tag("jQuery('#uploaded_files')[0].scrollTop = jQuery('#uploaded_files')[0].scrollHeight") %>
... ...
app/views/cms/_upload_file_form.html.erb
... ... @@ -13,7 +13,7 @@
13 13 <%= hidden_field_tag('back_to', @back_to) %>
14 14  
15 15 <% button_bar do %>
16   - <%= add_upload_file_field(_('More files'), {:size => size}) %>
  16 + <%= button_to_function :add, _('More files'), "add_new_file_fields()" %>
17 17 <% if @back_to %>
18 18 <%= submit_button :save, _('Upload'), :cancel => @back_to %>
19 19 <% else %>
... ...
app/views/layouts/application-ng.html.erb
... ... @@ -5,7 +5,6 @@
5 5 <%= yield(:feeds) %>
6 6 <!--<meta http-equiv="refresh" content="1"/>-->
7 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
8   - <meta name="description" content="<%= @environment.name %>" />
9 8  
10 9 <!-- site root -->
11 10 <meta property="noosfero:root" content="<%= Noosfero.root %>"/>
... ...
plugins/custom_forms/lib/custom_forms_plugin/submission.rb
... ... @@ -5,7 +5,7 @@ class CustomFormsPlugin::Submission &lt; Noosfero::Plugin::ActiveRecord
5 5 # validation is done manually, see below
6 6 has_many :answers, :class_name => 'CustomFormsPlugin::Answer', :dependent => :destroy, :validate => false
7 7  
8   - attr_accessible :form, :profile
  8 + attr_accessible :form, :profile, :author_name, :author_email
9 9  
10 10 validates_presence_of :form
11 11 validates_presence_of :author_name, :author_email, :if => lambda {|submission| submission.profile.nil?}
... ... @@ -13,13 +13,16 @@ class CustomFormsPlugin::Submission &lt; Noosfero::Plugin::ActiveRecord
13 13 validates_format_of :author_email, :with => Noosfero::Constants::EMAIL_FORMAT, :if => (lambda {|submission| !submission.author_email.blank?})
14 14 validate :check_answers
15 15  
16   - def self.human_attribute_name(attrib)
17   - if /\d+/ =~ attrib and (f = CustomFormsPlugin::Field.find_by_id(attrib.to_i))
  16 + def self.human_attribute_name_with_customization(attrib, options={})
  17 + if /\d+/ =~ attrib and (f = CustomFormsPlugin::Field.find_by_id(attrib.to_s))
18 18 f.name
19 19 else
20   - attrib
  20 + _(self.human_attribute_name_without_customization(attrib))
21 21 end
22 22 end
  23 + class << self
  24 + alias_method_chain :human_attribute_name, :customization
  25 + end
23 26  
24 27 before_create do |submission|
25 28 if submission.profile
... ...
plugins/custom_forms/test/functional/custom_forms_plugin_profile_controller_test.rb
... ... @@ -40,6 +40,19 @@ class CustomFormsPluginProfileControllerTest &lt; ActionController::TestCase
40 40 assert_redirected_to :action => 'show'
41 41 end
42 42  
  43 + should 'display errors if user is not logged in and author_name is not uniq' do
  44 + logout
  45 + form = CustomFormsPlugin::Form.create(:profile => profile, :name => 'Free Software')
  46 + field = CustomFormsPlugin::TextField.create(:name => 'Name', :form => form)
  47 + submission = CustomFormsPlugin::Submission.create(:form => form, :author_name => "john", :author_email => 'john@example.com')
  48 +
  49 + assert_no_difference 'CustomFormsPlugin::Submission.count' do
  50 + post :show, :profile => profile.identifier, :id => form.id, :author_name => "john", :author_email => 'john@example.com', :submission => {field.id.to_s => 'Noosfero'}
  51 + end
  52 + assert_equal "Submission could not be saved", session[:notice]
  53 + assert_tag :tag => 'div', :attributes => { :class => 'errorExplanation', :id => 'errorExplanation' }
  54 + end
  55 +
43 56 should 'disable fields if form expired' do
44 57 form = CustomFormsPlugin::Form.create!(:profile => profile, :name => 'Free Software', :begining => Time.now + 1.day)
45 58 form.fields << CustomFormsPlugin::TextField.create(:name => 'Field Name', :form => form, :default_value => "First Field")
... ...
po/de/noosfero.po
... ... @@ -2942,10 +2942,6 @@ msgstr &quot;Karte&quot;
2942 2942 msgid "Full"
2943 2943 msgstr "Vollständig"
2944 2944  
2945   -#: app/helpers/search_helper.rb:104
2946   -msgid "Display"
2947   -msgstr "Anzeige"
2948   -
2949 2945 #: app/helpers/search_helper.rb:118 app/helpers/users_helper.rb:16
2950 2946 #: app/views/tasks/index.html.erb:26 app/views/tasks/index.html.erb:41
2951 2947 #: app/views/memberships/index.html.erb:16
... ... @@ -3000,19 +2996,6 @@ msgstr &quot;Aktivere Unternehmen aus dem Netzwerk&quot;
3000 2996 msgid "More popular enterprises from network"
3001 2997 msgstr "Beliebtere Unternehmen aus dem Netzwerk"
3002 2998  
3003   -#: app/helpers/search_helper.rb:23 app/helpers/search_helper.rb:113
3004   -#, fuzzy
3005   -msgid "Compact"
3006   -msgstr "Berechnung"
3007   -
3008   -#: app/helpers/search_helper.rb:55
3009   -msgid ", "
3010   -msgstr ", "
3011   -
3012   -#: app/helpers/search_helper.rb:56
3013   -msgid "search in all categories"
3014   -msgstr "In allen Kategorien suchen"
3015   -
3016 2999 #: app/helpers/boxes_helper.rb:106
3017 3000 msgid "This block is invisible. Your visitors will not see it."
3018 3001 msgstr "Dieser Bereich ist nicht sichtbar. Ihre Kunden werden ihn nicht sehen."
... ... @@ -3389,11 +3372,6 @@ msgstr &quot;Aktiviert um&quot;
3389 3372 msgid "Deativated users"
3390 3373 msgstr "Nutzer verwalten"
3391 3374  
3392   -#: app/helpers/users_helper.rb:16 app/views/tasks/index.html.erb:26
3393   -#: app/views/tasks/index.html.erb:41 app/views/memberships/index.html.erb:16
3394   -msgid "Filter"
3395   -msgstr "Filter"
3396   -
3397 3375 #: app/helpers/forms_helper.rb:62
3398 3376 msgid "Select the State"
3399 3377 msgstr "Wählen Sie das Bundesland"
... ... @@ -9909,45 +9887,6 @@ msgstr &quot;&quot;
9909 9887 "\">GNU Affero General Public License</a> Version 3 oder einer späteren "
9910 9888 "Version lizenziert ist."
9911 9889  
9912   -#~ msgid "More recent contents from network"
9913   -#~ msgstr "Neueste Inhalte aus dem Netzwerk"
9914   -
9915   -#~ msgid "More viewed contents from network"
9916   -#~ msgstr "Meistgesehene Inhalte aus dem Netzwerk"
9917   -
9918   -#~ msgid "Most commented contents from network"
9919   -#~ msgstr "Meistkommentierte Inhalte aus dem Netzwerk"
9920   -
9921   -#~ msgid "More recent people from network"
9922   -#~ msgstr "Neuere Leute aus dem Netzwerk"
9923   -
9924   -#~ msgid "More active people from network"
9925   -#~ msgstr "Aktivere Leute aus dem Netzwerk"
9926   -
9927   -#~ msgid "More popular people from network"
9928   -#~ msgstr "Populärere Leute aus dem Netzwerk"
9929   -
9930   -#~ msgid "More recent communities from network"
9931   -#~ msgstr "Neuere Gemeinschaften aus dem Netzwerk"
9932   -
9933   -#~ msgid "More active communities from network"
9934   -#~ msgstr "Aktivere Gemeinschaften aus dem Netzwerk"
9935   -
9936   -#~ msgid "More popular communities from network"
9937   -#~ msgstr "Populärere Gemeinschaften aus dem Netzwerk"
9938   -
9939   -#, fuzzy
9940   -#~ msgid "More recent enterprises from network"
9941   -#~ msgstr "Neueste Inhalte aus dem Netzwerk"
9942   -
9943   -#, fuzzy
9944   -#~ msgid "More active enterprises from network"
9945   -#~ msgstr "Aktivere Leute aus dem Netzwerk"
9946   -
9947   -#, fuzzy
9948   -#~ msgid "More popular enterprises from network"
9949   -#~ msgstr "Populärere Leute aus dem Netzwerk"
9950   -
9951 9890 #~ msgid "starting chat with %{name}"
9952 9891 #~ msgstr "starte Chat mit %{name}"
9953 9892  
... ...
po/it/noosfero-doc.po
... ... @@ -3,18 +3,20 @@
3 3 # This file is distributed under the same license as noosfero itself.
4 4 # Daniela Feitosa <danielafeitos@colivre.coop.br>, 2012.
5 5 #
6   -#, fuzzy
7 6 msgid ""
8 7 msgstr ""
9 8 "Project-Id-Version: noosfero 0.36.6\n"
10 9 "POT-Creation-Date: 2013-12-10 15:48-0300\n"
11   -"PO-Revision-Date: 2014-03-23 17:10-0300\n"
12   -"Last-Translator: Daniela Feitosa <danielafeitosa@colivre.coop.br>\n"
13   -"Language-Team: LANGUAGE TEAM <LL@li.org>\n"
14   -"Language: \n"
  10 +"PO-Revision-Date: 2015-03-16 22:47+0200\n"
  11 +"Last-Translator: TWS <tablettws@gmail.com>\n"
  12 +"Language-Team: Italian "
  13 +"<https://hosted.weblate.org/projects/noosfero/documentation/it/>\n"
  14 +"Language: it\n"
15 15 "MIME-Version: 1.0\n"
16 16 "Content-Type: text/plain; charset=UTF-8\n"
17 17 "Content-Transfer-Encoding: 8bit\n"
  18 +"Plural-Forms: nplurals=2; plural=n != 1;\n"
  19 +"X-Generator: Weblate 2.3-dev\n"
18 20  
19 21 #. type: Content of: <h1>
20 22 #: doc/noosfero/plugins/send_email.en.xhtml:1
... ... @@ -1274,7 +1276,7 @@ msgstr &quot;&quot;
1274 1276 #: doc/noosfero/user/sending-messages.en.xhtml:14
1275 1277 #: doc/noosfero/user/sending-scraps.en.xhtml:13
1276 1278 msgid "Description"
1277   -msgstr ""
  1279 +msgstr "Descrizione"
1278 1280  
1279 1281 #. type: Content of: <ol><li>
1280 1282 #: doc/noosfero/enterprise/editing-appearance.en.xhtml:18
... ...
po/it/noosfero.po
... ... @@ -7,28 +7,28 @@ msgid &quot;&quot;
7 7 msgstr ""
8 8 "Project-Id-Version: 1.0-690-gcb6e853\n"
9 9 "POT-Creation-Date: 2015-03-05 12:10-0300\n"
10   -"PO-Revision-Date: 2014-10-30 14:14+0200\n"
11   -"Last-Translator: Michal Čihař <michal@cihar.com>\n"
12   -"Language-Team: Italian <https://hosted.weblate.org/projects/noosfero/"
13   -"noosfero/it/>\n"
  10 +"PO-Revision-Date: 2015-03-16 23:06+0200\n"
  11 +"Last-Translator: TWS <tablettws@gmail.com>\n"
  12 +"Language-Team: Italian "
  13 +"<https://hosted.weblate.org/projects/noosfero/noosfero/it/>\n"
14 14 "Language: it\n"
15 15 "MIME-Version: 1.0\n"
16 16 "Content-Type: text/plain; charset=UTF-8\n"
17 17 "Content-Transfer-Encoding: 8bit\n"
18 18 "Plural-Forms: nplurals=2; plural=n != 1;\n"
19   -"X-Generator: Weblate 2.0-dev\n"
  19 +"X-Generator: Weblate 2.3-dev\n"
20 20  
21 21 #: app/models/approve_comment.rb:17
22 22 msgid "Anonymous"
23   -msgstr ""
  23 +msgstr "Anonimo"
24 24  
25 25 #: app/models/approve_comment.rb:25 app/models/approve_article.rb:17
26 26 msgid "Article removed."
27   -msgstr ""
  27 +msgstr "Articolo Rimosso."
28 28  
29 29 #: app/models/approve_comment.rb:33
30 30 msgid "New comment to article"
31   -msgstr ""
  31 +msgstr "Nuovo Commento nell'articolo"
32 32  
33 33 #: app/models/approve_comment.rb:49 app/models/approve_comment.rb:51
34 34 msgid "%{requestor} commented on the article: %{linked_subject}."
... ... @@ -36,7 +36,7 @@ msgstr &quot;&quot;
36 36  
37 37 #: app/models/approve_comment.rb:55 app/models/approve_article.rb:77
38 38 msgid "The article was removed."
39   -msgstr ""
  39 +msgstr "L'articolo è stato rimosso."
40 40  
41 41 #: app/models/approve_comment.rb:81
42 42 msgid "%{requestor} wants to comment the article: %{article}."
... ... @@ -50,6 +50,8 @@ msgstr &quot;&quot;
50 50 msgid ""
51 51 "You need to login on %{system} in order to approve or reject this comment."
52 52 msgstr ""
  53 +"Devi connetterti su %{system} per poter approvare oppure rigettare questo "
  54 +"commento."
53 55  
54 56 #: app/models/approve_comment.rb:94
55 57 msgid ""
... ... @@ -58,14 +60,21 @@ msgid &quot;&quot;
58 60 "\n"
59 61 "%{comment} "
60 62 msgstr ""
  63 +"Il tuo commento su questo articolo \"%{article}\" è stato approvato. Ecco "
  64 +"qui il commento lasciato dall'Amministratore che ha approvato il tuo "
  65 +"commentot:↵\n"
  66 +"↵\n"
  67 +"%{comment} "
61 68  
62 69 #: app/models/approve_comment.rb:96
63 70 msgid "Your request for comment the article \"%{article}\" was approved."
64 71 msgstr ""
  72 +"La richiesta per commentare questo articolo \"%{article}\" è stata approvata."
65 73  
66 74 #: app/models/approve_comment.rb:101
67 75 msgid "Your request for commenting the article \"%{article}\" was rejected."
68 76 msgstr ""
  77 +"La richiesta per commentare questo articolo \"%{article}\" è stata rigettata."
69 78  
70 79 #: app/models/approve_comment.rb:103
71 80 msgid ""
... ... @@ -74,6 +83,10 @@ msgid &quot;&quot;
74 83 "\n"
75 84 "%{reject_explanation}"
76 85 msgstr ""
  86 +"Ecco la spiegazione del rigetto lasciata dall' Amministratore che ha "
  87 +"rigettato il tuo commento: ↵\n"
  88 +"↵\n"
  89 +"%{reject_explanation}"
77 90  
78 91 #: app/models/comment.rb:4 app/models/article.rb:171
79 92 #: app/views/content_viewer/_comment_form.html.erb:70
... ... @@ -91,7 +104,7 @@ msgstr &quot;&quot;
91 104 #: app/views/cms/publish.html.erb:43 app/views/cms/publish.html.erb:59
92 105 #: app/views/comment/_comment_form.html.erb:77
93 106 msgid "Title"
94   -msgstr ""
  107 +msgstr "Titolo"
95 108  
96 109 #: app/models/comment.rb:5 app/models/product.rb:4 app/models/category.rb:6
97 110 #: app/models/article.rb:16 app/models/profile.rb:15
... ... @@ -111,12 +124,12 @@ msgstr &quot;&quot;
111 124 #: app/views/enterprise_validation/_details.html.erb:3
112 125 #: app/views/contact/sender/notification.html.erb:11
113 126 msgid "Name"
114   -msgstr ""
  127 +msgstr "Nome"
115 128  
116 129 #: app/models/comment.rb:6 app/models/article.rb:18 app/models/article.rb:38
117 130 #: app/models/scrap.rb:6
118 131 msgid "Content"
119   -msgstr ""
  132 +msgstr "Contenuto"
120 133  
121 134 #: app/models/comment.rb:32
122 135 msgid "{fn} can only be informed for unauthenticated authors"
... ... @@ -124,11 +137,11 @@ msgstr &quot;&quot;
124 137  
125 138 #: app/models/comment.rb:71
126 139 msgid "(removed user)"
127   -msgstr ""
  140 +msgstr "(utente rimosso)"
128 141  
129 142 #: app/models/comment.rb:71
130 143 msgid "(unauthenticated user)"
131   -msgstr ""
  144 +msgstr "(utente non autenticato)"
132 145  
133 146 #: app/models/product.rb:5 app/models/organization.rb:108
134 147 #: app/models/certifier.rb:7 app/views/search/_article_description.html.erb:4
... ... @@ -137,120 +150,129 @@ msgstr &quot;&quot;
137 150 #: app/views/cms/_uploaded_file.html.erb:5
138 151 #: app/views/manage_products/show.html.erb:32
139 152 msgid "Description"
140   -msgstr ""
  153 +msgstr "Descrizione"
141 154  
142 155 #: app/models/product.rb:104 app/helpers/display_helper.rb:42
143 156 #: app/helpers/display_helper.rb:51
144 157 msgid "Uncategorized product"
145   -msgstr ""
  158 +msgstr "Prodotto senza categoria"
146 159  
147 160 #: app/models/product.rb:244
148 161 msgid "0%"
149   -msgstr ""
  162 +msgstr "0%"
150 163  
151 164 #: app/models/product.rb:245
152 165 msgid "25%"
153   -msgstr ""
  166 +msgstr "25%"
154 167  
155 168 #: app/models/product.rb:246
156 169 msgid "50%"
157   -msgstr ""
  170 +msgstr "50%"
158 171  
159 172 #: app/models/product.rb:247
160 173 msgid "75%"
161   -msgstr ""
  174 +msgstr "75%"
162 175  
163 176 #: app/models/product.rb:248
164 177 msgid "100%"
165   -msgstr ""
  178 +msgstr "100%"
166 179  
167 180 #: app/models/invite_member.rb:20
168 181 msgid "Community invitation"
169   -msgstr ""
  182 +msgstr "Invito della Comunità"
170 183  
171 184 #: app/models/invite_member.rb:28
172 185 msgid "%{requestor} invited you to join %{linked_subject}."
173   -msgstr ""
  186 +msgstr "%{requestor} sei stato invitato ad entrare %{linked_subject}."
174 187  
175 188 #: app/models/invite_member.rb:40
176 189 msgid "%{requestor} invited you to join %{community}."
177 190 msgstr ""
  191 +"%{requestor} sei stato invitato ad entrare nella comunità %{community}.."
178 192  
179 193 #: app/models/invite_member.rb:45
180 194 msgid "%{requestor} is inviting you to join \"%{community}\" on %{system}."
181 195 msgstr ""
  196 +"%{requestor} sei stato invitato a far parte della comunità \"%{community}\" "
  197 +"nel sistema %{system}."
182 198  
183 199 #: app/models/invite_member.rb:57 app/models/invite_friend.rb:37
184 200 msgid "Hello <friend>,"
185   -msgstr ""
  201 +msgstr "Ciao <amico>,"
186 202  
187 203 #: app/models/invite_member.rb:58
188 204 msgid "<user> is inviting you to join \"<community>\" on <environment>."
189 205 msgstr ""
  206 +"<user> è stato invitato a far parte della comunità \"<community>\" su "
  207 +"<environment>."
190 208  
191 209 #: app/models/invite_member.rb:59 app/models/invite_friend.rb:39
192 210 msgid "To accept the invitation, please follow this link:"
193   -msgstr ""
  211 +msgstr "Per accettare questo invito, segui questo link per favore:"
194 212  
195 213 #: app/models/my_network_block.rb:6 app/models/my_network_block.rb:10
196 214 msgid "My network"
197   -msgstr ""
  215 +msgstr "La mia Rete"
198 216  
199 217 #: app/models/my_network_block.rb:14
200 218 msgid "This block displays some info about your networking."
201   -msgstr ""
  219 +msgstr "Questo blocco mostra alcune informazioni riguardo la tua Rete."
202 220  
203 221 #: app/models/sellers_search_block.rb:6
204 222 msgid "Search for enterprises and products"
205   -msgstr ""
  223 +msgstr "Ricerca per Prodotti e Aziende"
206 224  
207 225 #: app/models/sellers_search_block.rb:10
208 226 msgid "Products/Enterprises search"
209   -msgstr ""
  227 +msgstr "Ricerca Prodotti o di Aziende"
210 228  
211 229 #: app/models/sellers_search_block.rb:14
212 230 msgid "Search for sellers"
213   -msgstr ""
  231 +msgstr "Ricerca per Venditori"
214 232  
215 233 #: app/models/sellers_search_block.rb:18
216 234 msgid "This block presents a search engine for products."
217   -msgstr ""
  235 +msgstr "Questo blocco presenta un motore di ricerca per prodotti."
218 236  
219 237 #: app/models/categories_block.rb:4
220 238 msgid "Generic category"
221   -msgstr ""
  239 +msgstr "Categoria Generica"
222 240  
223 241 #: app/models/categories_block.rb:5 app/helpers/categories_helper.rb:6
224 242 #: app/views/enterprise_registration/basic_information.html.erb:25
225 243 msgid "Region"
226   -msgstr ""
  244 +msgstr "Regione"
227 245  
228 246 #: app/models/categories_block.rb:6 app/views/manage_products/index.html.erb:5
229 247 msgid "Product"
230   -msgstr ""
  248 +msgstr "Prodotto"
231 249  
232 250 #: app/models/categories_block.rb:14 app/models/categories_block.rb:18
233 251 msgid "Categories Menu"
234   -msgstr ""
  252 +msgstr "Menu Categorie"
235 253  
236 254 #: app/models/categories_block.rb:22
237 255 msgid "This block presents the categories like a web site menu."
238   -msgstr ""
  256 +msgstr "Questo blocco presenta le categorie come un menu di un sito Internet."
239 257  
240 258 #: app/models/contact_list.rb:18
241 259 msgid ""
242 260 "There was an error while authenticating. Did you enter correct login and "
243 261 "password?"
244 262 msgstr ""
  263 +"C'è stato un errore durante l'autenticazione. Hai utilizzato la giusta Login "
  264 +"e Password?"
245 265  
246 266 #: app/models/contact_list.rb:25
247 267 msgid ""
248 268 "There was an error while looking for your contact list. Please, try again"
249 269 msgstr ""
  270 +"C'è stato un errore mentre cercavi la tua lista di contatti. Per favore, "
  271 +"prova ancora"
250 272  
251 273 #: app/models/uploaded_file.rb:12
252 274 msgid "File"
253   -msgstr ""
  275 +msgstr "File (Documento)"
254 276  
255 277 #: app/models/uploaded_file.rb:72
256 278 msgid "{fn} of uploaded file was larger than the maximum size of %{size}"
... ... @@ -258,47 +280,47 @@ msgstr &quot;&quot;
258 280  
259 281 #: app/models/uploaded_file.rb:99
260 282 msgid "Uploaded file"
261   -msgstr ""
  283 +msgstr "File Caricato"
262 284  
263 285 #: app/models/uploaded_file.rb:103
264 286 msgid "Upload any kind of file you want."
265   -msgstr ""
  287 +msgstr "Carica qualunque tipo di File (Documento) che vuoi."
266 288  
267 289 #: app/models/invite_friend.rb:12
268 290 msgid "Friend invitation"
269   -msgstr ""
  291 +msgstr "Invito di un Amico"
270 292  
271 293 #: app/models/invite_friend.rb:16 app/models/invite_friend.rb:28
272 294 #: app/models/add_friend.rb:32 app/models/add_friend.rb:45
273 295 msgid "%{requestor} wants to be your friend."
274   -msgstr ""
  296 +msgstr "%{requestor} vuole essere tuo amico."
275 297  
276 298 #: app/models/invite_friend.rb:38
277 299 msgid "<user> is inviting you to participate on <environment>."
278   -msgstr ""
  300 +msgstr "<user> ti sta invitanto a partecipare a <environment>."
279 301  
280 302 #: app/models/fans_block.rb:4
281 303 msgid "Displays the people who like the enterprise"
282   -msgstr ""
  304 +msgstr "Mostra le persone a cui piace la Società"
283 305  
284 306 #: app/models/fans_block.rb:8
285 307 msgid "{#} fan"
286 308 msgid_plural "{#} fans"
287   -msgstr[0] ""
288   -msgstr[1] ""
  309 +msgstr[0] "{#} Ammiratore"
  310 +msgstr[1] "{#} Ammiratori"
289 311  
290 312 #: app/models/fans_block.rb:12
291 313 msgid "This block presents the fans of an enterprise."
292   -msgstr ""
  314 +msgstr "Questo blocco presenta gli ammiratori di una Società."
293 315  
294 316 #: app/models/fans_block.rb:18 app/models/favorite_enterprises_block.rb:19
295 317 #: app/views/cms/_published_media_items.html.erb:7
296 318 msgid "View all"
297   -msgstr ""
  319 +msgstr "Mostra Tutto"
298 320  
299 321 #: app/models/slideshow_block.rb:12
300 322 msgid "Slideshow"
301   -msgstr ""
  323 +msgstr "Presentazione"
302 324  
303 325 #: app/models/featured_products_block.rb:20
304 326 #: app/views/box_organizer/_featured_products_block.html.erb:1
... ...
po/pt/noosfero.po
... ... @@ -13,8 +13,8 @@ msgid &quot;&quot;
13 13 msgstr ""
14 14 "Project-Id-Version: 1.0-690-gcb6e853\n"
15 15 "POT-Creation-Date: 2015-03-05 12:10-0300\n"
16   -"PO-Revision-Date: 2015-03-14 22:06+0200\n"
17   -"Last-Translator: daniel <dtygel@eita.org.br>\n"
  16 +"PO-Revision-Date: 2015-03-17 21:44+0200\n"
  17 +"Last-Translator: Evandro Junior <evandrojr@gmail.com>\n"
18 18 "Language-Team: Portuguese "
19 19 "<https://hosted.weblate.org/projects/noosfero/noosfero/pt/>\n"
20 20 "Language: pt\n"
... ... @@ -1635,7 +1635,7 @@ msgstr &quot;&quot;
1635 1635 "não foi aprovada pelo administrador do ambiente. A seguinte explicação foi "
1636 1636 "dada: \n"
1637 1637 "\n"
1638   -"%{explication}"
  1638 +"%{explanation}"
1639 1639  
1640 1640 #: app/models/create_community.rb:92
1641 1641 msgid ""
... ... @@ -1946,7 +1946,7 @@ msgstr &quot;&quot;
1946 1946 "%{environment} NÃO foi aprovada pelo validador de organização. A seguinte "
1947 1947 "explicação foi dada: \n"
1948 1948 "\n"
1949   -"%{explication}"
  1949 +"%{explanation}"
1950 1950  
1951 1951 #: app/models/create_enterprise.rb:187
1952 1952 msgid ""
... ...
public/javascripts/application.js
... ... @@ -1128,4 +1128,11 @@ function stop_fetching(element){
1128 1128 jQuery('.fetching-overlay', element).remove();
1129 1129 }
1130 1130  
  1131 +function add_new_file_fields() {
  1132 + var cloned = jQuery('#uploaded_files p:last').clone();
  1133 + cloned.find("input[type='file']").val('');
  1134 + cloned.appendTo('#uploaded_files');
  1135 + jQuery('body').scrollTo(cloned);
  1136 +}
  1137 +
1131 1138 window.isHidden = function isHidden() { return (typeof(document.hidden) != 'undefined') ? document.hidden : !document.hasFocus() };
... ...
test/functional/profile_design_controller_test.rb
... ... @@ -755,4 +755,12 @@ class ProfileDesignControllerTest &lt; ActionController::TestCase
755 755 assert_response :forbidden
756 756 end
757 757  
  758 + should 'guarantee main block is always visible to everybody' do
  759 + get :edit, :profile => 'designtestuser', :id => @b4.id
  760 + %w[logged not_logged followers].each do |option|
  761 + assert_no_tag :select, :attributes => {:name => 'block[display_user]'},
  762 + :descendant => {:tag => 'option', :attributes => {:value => option}}
  763 + end
  764 + end
  765 +
758 766 end
... ...
test/unit/add_friend_test.rb
... ... @@ -77,9 +77,9 @@ class AddFriendTest &lt; ActiveSupport::TestCase
77 77 end
78 78  
79 79 should 'not add friend twice' do
80   - fast_create(AddFriend, :requestor_id => person1.id, :target_id => person2.id)
  80 + create AddFriend, person: person1, friend: person2, status: 1
81 81 assert_raise ActiveRecord::RecordInvalid do
82   - AddFriend.create!(:person => person1, :friend => person2)
  82 + create AddFriend, person: person1, friend: person2, status: 1
83 83 end
84 84 end
85 85  
... ...
test/unit/main_block_test.rb
... ... @@ -29,4 +29,8 @@ class MainBlockTest &lt; ActiveSupport::TestCase
29 29 assert !block.visible?
30 30 end
31 31  
  32 + should 'guarantee main block is always visible to everybody' do
  33 + assert_equal MainBlock.new.display_user_options, {"all"=>_('All users')}
  34 + end
  35 +
32 36 end
... ...
test/unit/person_test.rb
... ... @@ -324,7 +324,9 @@ class PersonTest &lt; ActiveSupport::TestCase
324 324 should 'already request friendship' do
325 325 p1 = create_user('testuser1').person
326 326 p2 = create_user('testuser2').person
327   - create(AddFriend, :person => p1, :friend => p2)
  327 + create(AddFriend, person: p1, friend: p2).finish
  328 + assert !p1.already_request_friendship?(p2)
  329 + create(AddFriend, person: p1, friend: p2)
328 330 assert p1.already_request_friendship?(p2)
329 331 end
330 332  
... ...