>
> > 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]
-~----------~----~----~----~------~----~------~--~---