diff --git a/app/assets/stylesheets/public/need.scss b/app/assets/stylesheets/public/need.scss index 43fa7aa..afd8cd6 100644 --- a/app/assets/stylesheets/public/need.scss +++ b/app/assets/stylesheets/public/need.scss @@ -55,6 +55,29 @@ color:rgb(163, 159, 159); } + .state{ + position:absolute; + top:0px; + right:0px; + color:white; + padding:4px; + padding-left:8px; + padding-right:8px; + } + + .state-success{ + background-color:#5cb85c; + } + .state-danger{ + background-color:#d9534f; + } + .state-info{ + background-color:#428bca; + } + .state-warning{ + background-color:#f0ad4e; + } + .counters{ position:absolute; left:0px; @@ -85,7 +108,8 @@ } - margin-bottom:50px; + margin-bottom:30px; + h4{ margin-top:0px; margin-bottom:0px; diff --git a/app/controllers/public/needs_controller.rb b/app/controllers/public/needs_controller.rb index d066dbd..a5e65ed 100644 --- a/app/controllers/public/needs_controller.rb +++ b/app/controllers/public/needs_controller.rb @@ -26,6 +26,10 @@ class Public::NeedsController < ApplicationController @needs = @needs.where(category_id: ids) end + if(params[:s] and params[:s] != '') + @needs = @needs.where(state: params[:s]) + end + # Include order in the query case params[:o] when 'alpha-asc' @@ -100,7 +104,7 @@ class Public::NeedsController < ApplicationController if @need.save flash[:notice] = "Votre besoin à été créé avec succès." - + redirect_to public_my_account_path else render :action => "new" diff --git a/app/models/need.rb b/app/models/need.rb index 0b45d72..f22d5a7 100644 --- a/app/models/need.rb +++ b/app/models/need.rb @@ -106,7 +106,7 @@ class Need < ActiveRecord::Base when 'created' "En attente de validation" when 'verified' - "Validé" + "En sondage" when 'refused' "Refusé" when 'negociating' diff --git a/app/views/public/needs/_need.html.haml b/app/views/public/needs/_need.html.haml index dab5a8a..5505de0 100644 --- a/app/views/public/needs/_need.html.haml +++ b/app/views/public/needs/_need.html.haml @@ -1,6 +1,6 @@ -css_class = 'warning' if need.created? -css_class = 'danger' if need.refused? --css_class = 'success' if need.verified? +-css_class = 'success' if need.verified? or need.negociated? or need.negociating? or need.failed? -state = 'Validé' if need.verified? or need.negociated? or need.negociating? or need.failed? -state = 'En attente de validation' if need.created? -state = 'Refusée' if need.refused? diff --git a/app/views/public/needs/_need_item.html.haml b/app/views/public/needs/_need_item.html.haml index dbbe475..c339c95 100644 --- a/app/views/public/needs/_need_item.html.haml +++ b/app/views/public/needs/_need_item.html.haml @@ -4,15 +4,36 @@ %h4 =link_to need.title.upcase, public_need_path(need) - -if need.author - %p.info=i(:"clock-o") + " Ajouté il y a #{time_ago_in_words(need.created_at)} par #{need.author.anonyme_nick}" - -else - %p.info=i(:"clock-o") + " Ajouté il y a #{time_ago_in_words(need.created_at)}" + -# -if need.author + -# %p.info=i(:"clock-o") + " Ajouté il y a #{time_ago_in_words(need.created_at)} par #{need.author.anonyme_nick}" + -# -else + -# %p.info=i(:"clock-o") + " Ajouté il y a #{time_ago_in_words(need.created_at)}" - - -if need.category - .top-left-info + .top-left-info + -if need.category =i(:"tag") + " " + need.category_path + -else + Non catégorisé + -if need.verified? + %span.state.state-info.pull-right + =need.human_state + -elsif need.negociating? + %span.state.state-warning.pull-right + =need.human_state + -elsif need.failed? + %span.state.state-danger.pull-right + =need.human_state + -elsif need.negociated? + %span.state.state-success.pull-right + -offers = need.offers.order(price: :asc) + -if offers.size > 1 + Négocié à partir de + %strong="#{number_to_currency(offers.first.price, locale: :fr)}" + -elsif offers.size == 1 + Négocié à + %strong="#{number_to_currency(offers.first.price, locale: :fr)}" + -else + Négocié @@ -24,9 +45,14 @@ .item=i(:"hand-paper-o") + " " + need.wishes.length.to_s .item=i(:"comment-o") + " " + need.messages.length.to_s - -if(need.customers.include?(current_customer)) - =link_to i(:"check") + " Intéressé", wish_public_need_path(need) , :class => "btn btn-success pull-right" - -else - =link_to i(:"hand-paper-o") + " Ça m'intéresse !", wish_public_need_path(need) , :class => "btn btn-primary pull-right" - .clear + -if(need.customers.include?(current_customer)) + -if(need.verified? or need.negociating?) + =link_to i(:"check") + " Intéressé", wish_public_need_path(need) , class: "btn btn-success pull-right" + -elsif(need.negociated?) + =link_to "J'en profite!", public_need_path(need), class: "btn btn-success pull-right" + + -else + =link_to i(:"hand-paper-o") + " Ça m'intéresse !", wish_public_need_path(need) , class: "btn btn-primary pull-right" + + .clear diff --git a/app/views/public/needs/index.html.haml b/app/views/public/needs/index.html.haml index 95dc1a9..f890bbe 100644 --- a/app/views/public/needs/index.html.haml +++ b/app/views/public/needs/index.html.haml @@ -25,8 +25,11 @@ = f.inputs do = f.input :c, as: :category, selected: params[:c], input_html: {:name => 'c' }, label: 'Filtrer par catégorie', :include_blank => "Toute catégorie" , :as => :select, :collection => @tree.map{|c| [(c.level > 0 ? ('   ' * (c.level - 1)) + "|- ": "").html_safe + c.name, c.id]} .clear - + = f.inputs do + = f.input :s, as: :state, selected: params[:s], input_html: {:name => 's' }, label: 'Filter par état', :include_blank => "Tous les états" , :as => :select, :collection => [["En sondage","verified"],["En négociation","negociating"],["Négocié","negociated"],["Négociation échouée","failed"]] + .clear :javascript $('#search_o').change(function(){$('#search_form').submit()}) $('#search_r').change(function(){$('#search_form').submit()}) $('#search_c').change(function(){$('#search_form').submit()}) + $('#search_s').change(function(){$('#search_form').submit()}) diff --git a/app/views/public/needs/show.html.haml b/app/views/public/needs/show.html.haml index b8082c6..62d1ee0 100644 --- a/app/views/public/needs/show.html.haml +++ b/app/views/public/needs/show.html.haml @@ -3,27 +3,36 @@ %h1= @need.title.upcase -if @need.author - %p.info=i(:"clock-o") + " Ajouté il y a #{time_ago_in_words(@need.created_at)} par #{@need.author.anonyme_nick}" + %p.info + =i(:"clock-o") + " Proposé par " + %strong=@need.author.anonyme_nick + ="il y a #{time_ago_in_words(@need.created_at)}" -else %p.info=i(:"clock-o") + " Ajouté il y a #{time_ago_in_words(@need.created_at)}" + + -if @need.category %p.info=i(:"tag") + " " + @need.category_path + -else + %p.info=i(:"tag") + " Non catégorisé" + %p.description= @need.description - %p.description= @need.description - - .clear - .counters - -if(@need.wishes.length > 0) - .item=i(:"hand-paper-o") + " " + " #{pluralize(@need.wishes.length, 'Organisation')} #{"intéressé".pluralize(@need.wishes.length)} par ce besoin" - -else - .item=i(:"hand-paper-o") + " Aucune organisation n'est intéressé par ce besoin" + .clear + .counters + -if(@need.wishes.length > 0) + .item=i(:"hand-paper-o") + " " + " #{pluralize(@need.wishes.length, 'utilisateur')} #{"intéressé".pluralize(@need.wishes.length)} par ce besoin" + -else + .item=i(:"hand-paper-o") + " Aucun utilisateur n'est intéressé par ce besoin" + -if @need.verified? or @need.negociating? -if(@need.customers.include?(current_customer)) =link_to i(:"check") + " Intéressé", wish_public_need_path(@need) , :class => "btn btn-square btn-lg btn-success pull-right" -else =link_to i(:"hand-paper-o") + " Ça m'intéresse !", wish_public_need_path(@need) , :class => "btn btn-square btn-lg btn-primary pull-right" - .clear + -elsif @need.negociated + + .clear %hr = semantic_form_for [:public, @need, @comment ], :html => {id: :message_form, :method => :post } do |f|