Forum: Rails France calendrier - gestion des interavalles

F96eb42f1c21d80569efdfcc1fe40593?d=identicon&s=25 Amelie D. (amelie_d)
on 2012-10-18 11:56
Bonjour,

je suis actuellement sur la customisation d'une interface sous Redmine,
j'ai la version 2.1.0.


J'ai voulu ajouter la possibilité de voir les intervalles entre le début
et la fin d'un tâche. C'est à dire, si une tâche était programmée entre
le 17 et le 19, pouvoir l'afficher le 18.
Cependant, si je programme une tâche commencée le 01 aout et qui doit
finir le 10 octobre par exemple, ma tache s'affichera pour tout le mois
d'aout mais en septembre elle ne va plus s'afficher ...
Il y aurait-il moyen pour l'afficher ?

Sur le fichier htdocs/app/views/common/_calendar.html.erb :

Avant la ligne :
<% calendar.events_on(day).each do |i| %>

J'ai en fait rajouté :
<% tab =
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
%>
<% for t in tab %>
<% calendar.events_on(day-t).each do |i|  %>
<% if i.due_date != nil && day < i.due_date %>
<div class="<%= i.css_classes %> tooltip">
<%= h("#{i.project} -") unless @project && @project == i.project %>
<%= link_to_issue i, :truncate => 30 %>

<span class="tip"><%= render_issue_tooltip i %></span>
</div>
<% end %>
<% end %>
<% end %>

Merci pour votre aide !

Cordialement.
05e44ea9c7abadf4cd4d18f9025c6c82?d=identicon&s=25 Sylvain Abélard (sly)
on 2012-11-17 19:04
Bonjour Amélie,

je ne passe pas souvent, j'espère que tu as pu avancer malgré l'absence
de réponse en un mois :)

Je n'aime pas inciter à la désertion d'une ML mais ce canal est un peu
vide, si tu tentes les Google Groups, ils sont largement plus actifs.



Je me permets quelques remarques sur le code. Personne n'est parfait
mais ces quelques astuces te simplifieront sûrement la vie et
l'apprentissage du Ruby.

À bientôt,

Amelie D. wrote in post #1080272:
> J'ai voulu ajouter la possibilité de voir les intervalles entre le début
> et la fin d'un tâche. C'est à dire, si une tâche était programmée entre
> le 17 et le 19, pouvoir l'afficher le 18.
> Cependant, si je programme une tâche commencée le 01 aout et qui doit
> finir le 10 octobre par exemple, ma tache s'affichera pour tout le mois
> d'aout mais en septembre elle ne va plus s'afficher ...
> Il y aurait-il moyen pour l'afficher ?
>
> Sur le fichier htdocs/app/views/common/_calendar.html.erb :
>
> Avant la ligne :
> <% calendar.events_on(day).each do |i| %>
>
> J'ai en fait rajouté :
> <% tab =
>
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]
> %>
Plusieurs remarques :
- quitte à créer un tableau, autant faire un intervalle : 1..31
- il y a PLEIN de moyens plus pratiques de créer un tableau du genre
   (1..31).to_a
   a = []; 31.times {|i| a << i+1}
- si c'est un tableau de dates, tu veux parfois 28, 29 ou 30 ?

> <% for t in tab %>
Et si c'est pour itérer, idem. Je fais surtout avec each et map, pas
for, mais :
 (1..31).each {|i| ... }
 1.upto(31) {|i| ...}

> <% calendar.events_on(day-t).each do |i|  %>
Tu fais donc l'itération à l'envers, du N au 1er ?
Là encore cela induirait des modifs du style
1.upto(day) {|j|
  # jour j
}

Mais je pense que requêter tes événements en un coup peut aider à faire
ça.
Je ne connais pas "events_on(x)" et j'espère qu'il ne fait pas des
dizaines de requêtes inutiles pour rien, mais n'y a-t-il pas une méthode
pour prendre les événements entre une date X et Y ?

> <% if i.due_date != nil && day < i.due_date %>
> <div class="<%= i.css_classes %> tooltip">
> <%= h("#{i.project} -") unless @project && @project == i.project %>
Si tu as toujours un i.project, tu peux inverser ta condition tu fais
deux en un :
i.project == @project # si @project est nil la condition ne sera pas
remplie

> <%= link_to_issue i, :truncate => 30 %>
>
> <span class="tip"><%= render_issue_tooltip i %></span>
> </div>
> <% end %>
> <% end %>
> <% end %>

Bon courage et à bientôt si tu as d'autres questions !
D672cde900230b0baf01066869277f16?d=identicon&s=25 Marc Quinton (mqu)
on 2012-11-28 13:31
Sylvain Abélard wrote in post #1084909:

> Je n'aime pas inciter à la désertion d'une ML mais ce canal est un peu
> vide, si tu tentes les Google Groups, ils sont largement plus actifs.

est-ce qu'il y aurait un google-groupe francophone sur Ruby ? j'ai aussi
remarqué que le newsgroup francophone est très désert.
05e44ea9c7abadf4cd4d18f9025c6c82?d=identicon&s=25 Sylvain Abélard (sly)
on 2012-12-12 12:21
Il y a le Google Group RailsFrance :
https://groups.google.com/forum/?fromgroups#!forum...

Et de nombreux meetups :
http://www.ruby-lang.org/fr/community/user-groups/

Bon courage :)
This topic is locked and can not be replied to.