Commit cac3874d9c34fe62e55435a96b75ac238fd9de5f

Authored by Daniela Feitosa
2 parents c008814f 7d22740a

Merge branch 'stable'

Showing 37 changed files with 127 additions and 95 deletions   Show diff stats
app/controllers/admin/users_controller.rb
... ... @@ -3,10 +3,10 @@ class UsersController < AdminController
3 3 protect 'manage_environment_users', :environment
4 4  
5 5 def index
6   - @users = environment.users
7 6 respond_to do |format|
8 7 format.html
9 8 format.xml do
  9 + @users = User.find(:all, :conditions => {:environment_id => environment.id}, :include => [:person])
10 10 render :xml => @users.to_xml(
11 11 :skip_types => true,
12 12 :only => %w[email login created_at updated_at],
... ... @@ -14,6 +14,7 @@ class UsersController < AdminController
14 14 )
15 15 end
16 16 format.csv do
  17 + @users = User.find(:all, :conditions => {:environment_id => environment.id}, :include => [:person])
17 18 render :template => "users/index_csv.rhtml", :content_type => 'text/csv', :layout => false
18 19 end
19 20 end
... ...
app/helpers/application_helper.rb
... ... @@ -985,7 +985,7 @@ module ApplicationHelper
985 985 'thickbox',
986 986 'lightbox',
987 987 'colorpicker',
988   - colorbox_stylesheet_path,
  988 + 'colorbox',
989 989 pngfix_stylesheet_path,
990 990 ] +
991 991 tokeninput_stylesheets
... ... @@ -1000,10 +1000,6 @@ module ApplicationHelper
1000 1000 'iepngfix/iepngfix.css'
1001 1001 end
1002 1002  
1003   - def colorbox_stylesheet_path
1004   - 'colorbox/colorbox.css'
1005   - end
1006   -
1007 1003 def tokeninput_stylesheets
1008 1004 ['token-input', 'token-input-facebook', 'token-input-mac']
1009 1005 end
... ...
app/models/product.rb
... ... @@ -196,6 +196,7 @@ class Product < ActiveRecord::Base
196 196 end
197 197  
198 198 def price_description_percentage
  199 + return 0 if price.blank? || price.zero?
199 200 total_production_cost * 100 / price
200 201 end
201 202  
... ...
app/models/theme.rb
... ... @@ -43,8 +43,11 @@ class Theme
43 43  
44 44 def approved_themes(owner)
45 45 Dir.glob(File.join(system_themes_dir, '*')).select do |item|
46   - config = YAML.load_file(File.join(item, 'theme.yml'))
47   - (config['owner_type'] == owner.class.base_class.name) && (config['owner_id'] == owner.id) || config['public']
  46 + if File.exists?( File.join(item, 'theme.yml') )
  47 + config = YAML.load_file(File.join(item, 'theme.yml'))
  48 + (config['owner_type'] == owner.class.base_class.name) &&
  49 + (config['owner_id'] == owner.id) || config['public']
  50 + end
48 51 end.map do |desc|
49 52 new(File.basename(desc))
50 53 end
... ...
plugins/shopping_cart/public/style.css
... ... @@ -19,7 +19,7 @@
19 19 .cart {
20 20 position: fixed;
21 21 right: 20px;
22   - bottom: 0px;
  22 + top: 0px;
23 23 width: 200px;
24 24 z-index: 1000;
25 25 border: 1px solid #777;
... ...
po/pt/noosfero.po
... ... @@ -14,7 +14,7 @@ msgid ""
14 14 msgstr ""
15 15 "Project-Id-Version: noosfero 0.34.3\n"
16 16 "POT-Creation-Date: 2012-01-26 18:34-0200\n"
17   -"PO-Revision-Date: 2012-01-26 18:40-0200\n"
  17 +"PO-Revision-Date: 2012-02-06 22:28-0200\n"
18 18 "Last-Translator: Joenio Costa <joenio@colivre.coop.br>\n"
19 19 "Language-Team: LANGUAGE TEAM <E-MAIL@ADDRESS or HOME PAGE>\n"
20 20 "Language: \n"
... ... @@ -6735,7 +6735,7 @@ msgstr &quot;&quot;
6735 6735  
6736 6736 #: app/views/cms/publish_on_portal_community.rhtml:2
6737 6737 msgid "Publish your article on portal community"
6738   -msgstr "Publicar seu artigoi na comunidade portal"
  6738 +msgstr "Publicar seu artigo na comunidade portal"
6739 6739  
6740 6740 #: app/views/cms/publish_on_portal_community.rhtml:14
6741 6741 msgid "There is no portal community in this environment."
... ... @@ -9151,7 +9151,7 @@ msgstr &quot;Enviar pedido de compra&quot;
9151 9151  
9152 9152 #: plugins/shopping_cart/views/shopping_cart_plugin_myprofile/edit.html.erb:1
9153 9153 msgid "Basket options"
9154   -msgstr "Opçôes do cesto"
  9154 +msgstr "Opções do cesto"
9155 9155  
9156 9156 #: plugins/shopping_cart/views/shopping_cart_plugin_myprofile/edit.html.erb:5
9157 9157 msgid "Delivery?"
... ...
public/images/colorbox/border.png 0 → 100644

112 Bytes

public/images/colorbox/controls.png 0 → 100644

1.22 KB

public/images/colorbox/ie6/borderBottomCenter.png 0 → 100644

111 Bytes

public/images/colorbox/ie6/borderBottomLeft.png 0 → 100644

215 Bytes

public/images/colorbox/ie6/borderBottomRight.png 0 → 100644

217 Bytes

public/images/colorbox/ie6/borderMiddleLeft.png 0 → 100644

108 Bytes

public/images/colorbox/ie6/borderMiddleRight.png 0 → 100644

108 Bytes

public/images/colorbox/ie6/borderTopCenter.png 0 → 100644

111 Bytes

public/images/colorbox/ie6/borderTopLeft.png 0 → 100644

216 Bytes

public/images/colorbox/ie6/borderTopRight.png 0 → 100644

214 Bytes

public/images/colorbox/loading.gif 0 → 100644

9.21 KB

public/images/colorbox/loading_background.png 0 → 100644

157 Bytes

public/images/colorbox/overlay.png 0 → 100644

182 Bytes

public/stylesheets/application.css
... ... @@ -2993,9 +2993,10 @@ div#activation_enterprise div {
2993 2993 #product-list li.product {
2994 2994 width: 200px;
2995 2995 min-height: 280px;
2996   - float: left;
2997 2996 padding: 10px 30px 10px 0;
2998 2997 margin-bottom: 10px;
  2998 + display: inline-block;
  2999 + vertical-align: top;
2999 3000 }
3000 3001 #product-list .expand-box:hover {
3001 3002 background-color: #28F091;
... ...
public/stylesheets/colorbox.css 0 → 100644
... ... @@ -0,0 +1,82 @@
  1 +/*
  2 + ColorBox Core Style:
  3 + The following CSS is consistent between example themes and should not be altered.
  4 +*/
  5 +#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
  6 +#cboxOverlay{position:fixed; width:100%; height:100%;}
  7 +#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
  8 +#cboxContent{position:relative;}
  9 +#cboxLoadedContent{overflow:auto;}
  10 +#cboxTitle{margin:0;}
  11 +#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%;}
  12 +#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
  13 +.cboxPhoto{float:left; margin:auto; border:0; display:block;}
  14 +.cboxIframe{width:100%; height:100%; display:block; border:0;}
  15 +
  16 +/*
  17 + User Style:
  18 + Change the following styles to modify the appearance of ColorBox. They are
  19 + ordered & tabbed in a way that represents the nesting of the generated HTML.
  20 +*/
  21 +#cboxOverlay{background:url(../images/colorbox/overlay.png) repeat 0 0;}
  22 +#colorbox{}
  23 + #cboxTopLeft{width:21px; height:21px; background:url(../images/colorbox/controls.png) no-repeat -100px 0;}
  24 + #cboxTopRight{width:21px; height:21px; background:url(../images/colorbox/controls.png) no-repeat -129px 0;}
  25 + #cboxBottomLeft{width:21px; height:21px; background:url(../images/colorbox/controls.png) no-repeat -100px -29px;}
  26 + #cboxBottomRight{width:21px; height:21px; background:url(../images/colorbox/controls.png) no-repeat -129px -29px;}
  27 + #cboxMiddleLeft{width:21px; background:url(../images/colorbox/controls.png) left top repeat-y;}
  28 + #cboxMiddleRight{width:21px; background:url(../images/colorbox/controls.png) right top repeat-y;}
  29 + #cboxTopCenter{height:21px; background:url(../images/colorbox/border.png) 0 0 repeat-x;}
  30 + #cboxBottomCenter{height:21px; background:url(../images/colorbox/border.png) 0 -29px repeat-x;}
  31 + #cboxContent{background:#fff; overflow:hidden;}
  32 + #cboxError{padding:50px; border:1px solid #ccc;}
  33 + #cboxLoadedContent{margin-bottom:28px;}
  34 + #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
  35 + #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
  36 + #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
  37 + #cboxPrevious{position:absolute; bottom:0; left:0; background:url(../images/colorbox/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
  38 + #cboxPrevious.hover{background-position:-75px -25px;}
  39 + #cboxNext{position:absolute; bottom:0; left:27px; background:url(../images/colorbox/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
  40 + #cboxNext.hover{background-position:-50px -25px;}
  41 + #cboxLoadingOverlay{background:url(../images/colorbox/loading_background.png) no-repeat center center;}
  42 + #cboxLoadingGraphic{background:url(../images/colorbox/loading.gif) no-repeat center center;}
  43 + #cboxClose{position:absolute; bottom:0; right:0; background:url(../images/colorbox/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
  44 + #cboxClose.hover{background-position:-25px -25px;}
  45 +
  46 +/*
  47 + The following fixes a problem where IE7+ replaces a PNG's alpha transparency with a black fill
  48 + when an alpha filter (opacity change) is set on the element or ancestor element.
  49 +*/
  50 +.cboxIE #cboxTopLeft,
  51 +.cboxIE #cboxTopCenter,
  52 +.cboxIE #cboxTopRight,
  53 +.cboxIE #cboxBottomLeft,
  54 +.cboxIE #cboxBottomCenter,
  55 +.cboxIE #cboxBottomRight,
  56 +.cboxIE #cboxMiddleLeft,
  57 +.cboxIE #cboxMiddleRight {
  58 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
  59 +}
  60 +
  61 +/*
  62 + The following provides PNG transparency support for IE6
  63 +*/
  64 +.cboxIE6 #cboxTopLeft{background:url(../images/colorbox/ie6/borderTopLeft.png);}
  65 +.cboxIE6 #cboxTopCenter{background:url(../images/colorbox/ie6/borderTopCenter.png);}
  66 +.cboxIE6 #cboxTopRight{background:url(../images/colorbox/ie6/borderTopRight.png);}
  67 +.cboxIE6 #cboxBottomLeft{background:url(../images/colorbox/ie6/borderBottomLeft.png);}
  68 +.cboxIE6 #cboxBottomCenter{background:url(../images/colorbox/ie6/borderBottomCenter.png);}
  69 +.cboxIE6 #cboxBottomRight{background:url(../images/colorbox/ie6/borderBottomRight.png);}
  70 +.cboxIE6 #cboxMiddleLeft{background:url(../images/colorbox/ie6/borderMiddleLeft.png);}
  71 +.cboxIE6 #cboxMiddleRight{background:url(../images/colorbox/ie6/borderMiddleRight.png);}
  72 +
  73 +.cboxIE6 #cboxTopLeft,
  74 +.cboxIE6 #cboxTopCenter,
  75 +.cboxIE6 #cboxTopRight,
  76 +.cboxIE6 #cboxBottomLeft,
  77 +.cboxIE6 #cboxBottomCenter,
  78 +.cboxIE6 #cboxBottomRight,
  79 +.cboxIE6 #cboxMiddleLeft,
  80 +.cboxIE6 #cboxMiddleRight {
  81 + _behavior: expression(this.src = this.src ? this.src : this.currentStyle.backgroundImage.split('"')[1], this.style.background = "none", this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + this.src + ", sizingMethod='scale')");
  82 +}
... ...
public/stylesheets/colorbox/colorbox.css
... ... @@ -1,82 +0,0 @@
1   -/*
2   - ColorBox Core Style:
3   - The following CSS is consistent between example themes and should not be altered.
4   -*/
5   -#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
6   -#cboxOverlay{position:fixed; width:100%; height:100%;}
7   -#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
8   -#cboxContent{position:relative;}
9   -#cboxLoadedContent{overflow:auto;}
10   -#cboxTitle{margin:0;}
11   -#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%;}
12   -#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
13   -.cboxPhoto{float:left; margin:auto; border:0; display:block;}
14   -.cboxIframe{width:100%; height:100%; display:block; border:0;}
15   -
16   -/*
17   - User Style:
18   - Change the following styles to modify the appearance of ColorBox. They are
19   - ordered & tabbed in a way that represents the nesting of the generated HTML.
20   -*/
21   -#cboxOverlay{background:url(/stylesheets/colorbox/images/overlay.png) repeat 0 0;}
22   -#colorbox{}
23   - #cboxTopLeft{width:21px; height:21px; background:url(/stylesheets/colorbox/images/controls.png) no-repeat -100px 0;}
24   - #cboxTopRight{width:21px; height:21px; background:url(/stylesheets/colorbox/images/controls.png) no-repeat -129px 0;}
25   - #cboxBottomLeft{width:21px; height:21px; background:url(/stylesheets/colorbox/images/controls.png) no-repeat -100px -29px;}
26   - #cboxBottomRight{width:21px; height:21px; background:url(/stylesheets/colorbox/images/controls.png) no-repeat -129px -29px;}
27   - #cboxMiddleLeft{width:21px; background:url(/stylesheets/colorbox/images/controls.png) left top repeat-y;}
28   - #cboxMiddleRight{width:21px; background:url(/stylesheets/colorbox/images/controls.png) right top repeat-y;}
29   - #cboxTopCenter{height:21px; background:url(/stylesheets/colorbox/images/border.png) 0 0 repeat-x;}
30   - #cboxBottomCenter{height:21px; background:url(/stylesheets/colorbox/images/border.png) 0 -29px repeat-x;}
31   - #cboxContent{background:#fff; overflow:hidden;}
32   - #cboxError{padding:50px; border:1px solid #ccc;}
33   - #cboxLoadedContent{margin-bottom:28px;}
34   - #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
35   - #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
36   - #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
37   - #cboxPrevious{position:absolute; bottom:0; left:0; background:url(/stylesheets/colorbox/images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
38   - #cboxPrevious.hover{background-position:-75px -25px;}
39   - #cboxNext{position:absolute; bottom:0; left:27px; background:url(/stylesheets/colorbox/images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
40   - #cboxNext.hover{background-position:-50px -25px;}
41   - #cboxLoadingOverlay{background:url(/stylesheets/colorbox/images/loading_background.png) no-repeat center center;}
42   - #cboxLoadingGraphic{background:url(/stylesheets/colorbox/images/loading.gif) no-repeat center center;}
43   - #cboxClose{position:absolute; bottom:0; right:0; background:url(/stylesheets/colorbox/images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
44   - #cboxClose.hover{background-position:-25px -25px;}
45   -
46   -/*
47   - The following fixes a problem where IE7+ replaces a PNG's alpha transparency with a black fill
48   - when an alpha filter (opacity change) is set on the element or ancestor element.
49   -*/
50   -.cboxIE #cboxTopLeft,
51   -.cboxIE #cboxTopCenter,
52   -.cboxIE #cboxTopRight,
53   -.cboxIE #cboxBottomLeft,
54   -.cboxIE #cboxBottomCenter,
55   -.cboxIE #cboxBottomRight,
56   -.cboxIE #cboxMiddleLeft,
57   -.cboxIE #cboxMiddleRight {
58   - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
59   -}
60   -
61   -/*
62   - The following provides PNG transparency support for IE6
63   -*/
64   -.cboxIE6 #cboxTopLeft{background:url(/stylesheets/colorbox/images/ie6/borderTopLeft.png);}
65   -.cboxIE6 #cboxTopCenter{background:url(/stylesheets/colorbox/images/ie6/borderTopCenter.png);}
66   -.cboxIE6 #cboxTopRight{background:url(/stylesheets/colorbox/images/ie6/borderTopRight.png);}
67   -.cboxIE6 #cboxBottomLeft{background:url(/stylesheets/colorbox/images/ie6/borderBottomLeft.png);}
68   -.cboxIE6 #cboxBottomCenter{background:url(/stylesheets/colorbox/images/ie6/borderBottomCenter.png);}
69   -.cboxIE6 #cboxBottomRight{background:url(/stylesheets/colorbox/images/ie6/borderBottomRight.png);}
70   -.cboxIE6 #cboxMiddleLeft{background:url(/stylesheets/colorbox/images/ie6/borderMiddleLeft.png);}
71   -.cboxIE6 #cboxMiddleRight{background:url(/stylesheets/colorbox/images/ie6/borderMiddleRight.png);}
72   -
73   -.cboxIE6 #cboxTopLeft,
74   -.cboxIE6 #cboxTopCenter,
75   -.cboxIE6 #cboxTopRight,
76   -.cboxIE6 #cboxBottomLeft,
77   -.cboxIE6 #cboxBottomCenter,
78   -.cboxIE6 #cboxBottomRight,
79   -.cboxIE6 #cboxMiddleLeft,
80   -.cboxIE6 #cboxMiddleRight {
81   - _behavior: expression(this.src = this.src ? this.src : this.currentStyle.backgroundImage.split('"')[1], this.style.background = "none", this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + this.src + ", sizingMethod='scale')");
82   -}
public/stylesheets/colorbox/images/border.png

112 Bytes

public/stylesheets/colorbox/images/controls.png

1.22 KB

public/stylesheets/colorbox/images/ie6/borderBottomCenter.png

111 Bytes

public/stylesheets/colorbox/images/ie6/borderBottomLeft.png

215 Bytes

public/stylesheets/colorbox/images/ie6/borderBottomRight.png

217 Bytes

public/stylesheets/colorbox/images/ie6/borderMiddleLeft.png

108 Bytes

public/stylesheets/colorbox/images/ie6/borderMiddleRight.png

108 Bytes

public/stylesheets/colorbox/images/ie6/borderTopCenter.png

111 Bytes

public/stylesheets/colorbox/images/ie6/borderTopLeft.png

216 Bytes

public/stylesheets/colorbox/images/ie6/borderTopRight.png

214 Bytes

public/stylesheets/colorbox/images/loading.gif

9.21 KB

public/stylesheets/colorbox/images/loading_background.png

157 Bytes

public/stylesheets/colorbox/images/overlay.png

182 Bytes

test/unit/product_test.rb
... ... @@ -510,4 +510,26 @@ class ProductTest &lt; ActiveSupport::TestCase
510 510 assert_equal "50.00", product.formatted_value(:inputs_cost)
511 511 end
512 512  
  513 + should 'return 0 on price_description_percentage by default' do
  514 + assert_equal 0, Product.new.price_description_percentage
  515 + end
  516 +
  517 + should 'return 0 on price_description_percentage if price is 0' do
  518 + product = fast_create(Product, :price => 0)
  519 +
  520 + assert_equal 0, product.price_description_percentage
  521 + end
  522 +
  523 + should 'return 0 on price_description_percentage if price is not defined' do
  524 + product = fast_create(Product)
  525 +
  526 + assert_equal 0, product.price_description_percentage
  527 + end
  528 +
  529 + should 'return 0 on price_description_percentage if total_production_cost is 0' do
  530 + product = fast_create(Product, :price => 50)
  531 +
  532 + assert_equal 0, product.price_description_percentage
  533 + end
  534 +
513 535 end
... ...
test/unit/theme_test.rb
... ... @@ -170,6 +170,14 @@ class ThemeTest &lt; ActiveSupport::TestCase
170 170 assert ! Theme.approved_themes(profile).include?(Theme.find(t3.id))
171 171 end
172 172  
  173 + should 'not list non theme files or dirs inside themes dir' do
  174 + Theme.stubs(:system_themes_dir).returns(TMP_THEMES_DIR)
  175 + Dir.mkdir(TMP_THEMES_DIR)
  176 + Dir.mkdir(TMP_THEMES_DIR+'/empty-dir')
  177 + File.new(TMP_THEMES_DIR+'/my-logo.png', File::CREAT)
  178 + assert Theme.approved_themes(Environment.default).empty?
  179 + end
  180 +
173 181 should 'set theme to public' do
174 182 t = Theme.new('mytheme')
175 183 t.public = true
... ...