Forum: Rails France calendrier - gestion des interavalles

Posted by 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.
Posted by 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 !
Posted by 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.
Posted by 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 :)
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.