State & offers displayed in public part

This commit is contained in:
Nicolas VARROT 2015-12-10 20:04:48 +01:00
parent d6427259f8
commit 95b1c8b319
7 changed files with 93 additions and 27 deletions

View File

@ -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;

View File

@ -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"

View File

@ -106,7 +106,7 @@ class Need < ActiveRecord::Base
when 'created'
"En attente de validation"
when 'verified'
"Validé"
"En sondage"
when 'refused'
"Refusé"
when 'negociating'

View File

@ -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?

View File

@ -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

View File

@ -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 ? ('&nbsp;&nbsp;&nbsp;' * (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()})

View File

@ -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|