Le 23 septembre 2008 12:02, Nicolas G a écrit :

> sur une application en cours j'ai ajouté mon propre agenda relativement
> simple
> 15 minutes par rdv sur des plages horaires définies, pas plusieurs rdv à une
> même heure ...
>
> actuellement je sors une vue dans laquelle :
> je recueille tous les rdv du jour
> j'incrémente ensuite chaque 15 minutes (et au bout de 3 chaque heure bien
> sur :-) )
>        à chaque incrémentation je teste si il existe un rdv corespondant
> auquel cas je l'affiche
>       sinon le rdv est indiqué libre (avec un appel possible vers un partiel
> et variable locale)
>
> ce qui me donne une liste tout comme il faut
> néammoins je fais sur un petit serveur ( PPC 2x 450 Mhz) et pour trois
> journées cela le met à genou pour 4-5 sec alors en production sur 5-6 postes
> ...(même si le serveur sera plus costaud)
> 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 ?)

Pour corriger un algo, ça peut aider que tu exhibes le code qui va avec.

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=... ?

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

> 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

    -- Jean-François.

-- 
ça dépend
http://twitter.com/underflow_

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