>
> > existe -il un algo plus élégant et donc moins gourmand ?
>
> Pour paraphraser Renaud, "du code vaut mieux qu'un long baratin",
> surtout que je ne suis pas sûr d'avoir bien compris (on affiche les rdvs
> du jour ou les rdvs de 3 journées ?)
>


en fait trois colonnes avec une journée dans chaque, un partiel pour toutes

voici le code ;-)



>
> <%
>     @agenda = Agenda.find(:all, :conditions =>["day = ?",
> dateencours.strftime("%Y-%m-%d") ], :order => ("hour asc") )
> %>
> <h1>Le <%= dateencours.strftime("%d-%m-%Y") %></h1>
>
> <table>
>   <tr>
>     <th colspan="2">Hour</th>
>     <th>Medecin</th>
>     <th>Patient</th>
>     <th>Type</th>
>   </tr>
>
> <% for agenda in @agenda %>
>   <tr>
>
>       <td><%=h agenda.hour.strftime("%H") %></td>
>       <td><%=h agenda.hour.strftime("%M") %></td>
>     <td><%=h agenda.medecin.nom %></td>
>     <td><%=h agenda.patient.nom %></td>
>     <td><%=h agenda.type %></td>
>     <td><%= link_to 'V', agenda %></td>
>     <td><%= link_to 'M', edit_agenda_path(agenda) %></td>
>     <td><%= link_to 'E', agenda, :confirm => 'Are you sure?', :method =>
> :delete %></td>
>   </tr>
> <% end %>
>
>
> </table>
>
> <p><%= link_to 'Nouveau rendez-vous', new_agenda_path %></p>
>
>
> <table class="rdv">
>
> <%
> h = 8
> m = 0
> %>
>
> <% until  h > 20 %>
>     <% until m > 45 %>
>                 <%
>                     if m == 0
>                         min = 0
>                     else
>                         min = nil
>                     end
>                 %>
>                 <% heurerdv = h.to_s + ":" + m.to_s + min.to_s %>
>                 <% for agenda in @agenda %>
>                     <tr>
>                     <% if agenda.hour.strftime("%H").to_i == h and
> agenda.hour.strftime("%M").to_i == m %>
>                         <td class="rdvpris">
>                         <%= heurerdv %>
>                         </td>
>                         <td>
>                             <%= link_to "#{agenda.patient.nom.capitalize}
> #{agenda.patient.prenom.capitalize}" , agenda.patient %> l
>                                 Dr <%= agenda.patient.medecin.nom %> l
>                                 <%= link_to 'M', edit_agenda_path(agenda)
> %> l
>                                 <%= link_to 'E', agenda, :confirm =>
> 'Effacer ce rendez-vous ?', :method => :delete %>
>                         </td>
>                         <% rdvpris = "oui" %>
>                     <% end %>
>                 <% end %> <%# for agendas %>
>
>
>                 <% if rdvpris != "oui" %>
>                         <td class="heure">
>                             <%= heurerdv %>
>                         </td>
>                         <td class="rdv_form" >
>                               <%= render :partial => 'prendrerdv' %><% #
> locals à mettre après %>
>                        </td>
>                     </tr>
>                 <% else %>
>                     </tr>
>                 <% end %>
>
>
>
>         <%     m+=15
>             rdvpris = nil %>
>
>             <%    if h == 12 and m == 15 then
>                     h = 14
>                     m = 0
>                 end
>              %>
>     <% end %> <%# until m %>
> <% m = 0 %>
> <%     h += 1 %>
> <% end %> <%# until h %>
> </table>
>


Bon on va supposer que c'est pour les rdvs d'un jour, on a rdvs, les rdvs
d'un jour. On peut passer par un hash.

On a une méthode d'instance:

class Rendezvous < AR::B
 def plage_horaire
    # retourne par exemple la plage horaire sous forme de clé :'09h15'
 end
end

hash = rdvs.index_by(&:plage_horaire)

Avec hash[:'09h15'], j'ai soit un rdv soit nil.
Donc quand je parcours mes plages horaires, il me suffit d'examiner
hash avec la bonne clé.

" je teste si il existe un rdv corespondant auquel cas je l'affiche"
on sait pas trop comment tu fais ça, puisqu'on n'a pas le code, mais
en supposant que ça équivaut à un rdvs.include? ... c'est en O(n)
alors que mon hash lookup est (normalement) en O(1).

Si tu affiches les rdvs de plusieurs jours alors la clé doit contenir
comme information le jour.

> est-il possible d'afficher un lien

avec <a href=... ?

>>> :-)
>>> pas trop bon mais quand même ...

> pour voir les trois jours suivant et ainsi de suite ? j'ai pensé utiliser

T'affiches les rdvs d'un jour ou les rdvs du jour (aujourd'hui ?)
si pour afficher les rdvs d'un jour, ton appli a une url qui porte
l'information de la date, que ce soit dans le query string ou pas,
t'as la date et tu peux générer facilement des urls pour date +1, date +
2...

>>>c'est ce que je fais en invoquant trois fois le partiel en implémentant à
chaque fois +1.day

> une variable date dans session mais est-ce correct d'utiliser la
> session pour cela ?

C'est possible. T'en as pas besoin si c'est dans l'url,
par exemple les urls de blog : /posts/2008/09/23

non le but c'est de rafraichir juste la div en ajax,

   -- Jean-François.

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à