vendredi 27 mars 2009

Vendredi

Bon! Une grosse journée pour terminer la semaine!

Aussitôt arrivé au travail aujourd'hui, je me suis mit à "taponner" sur la requête que m'a pondu Sébastien hier. J'ai du contacter Iannick Légaré pour m'assurer de l'endroit où je devais récupérer certaines données. Il me fallait en autre rajouter une jointure pour récupérer la note globale pour le cours d'un étudiant. C'est là que j'ai frappé un problème.

Premier problème: la requête était extrêmement lente à s'exécuter: je parle ici d'assez gros problèmes de performance: 18 secondes d'exécution!
Deuxième problème: 894 résultats depuis l'ajout de ma jointure au lieu des 50 que j'étais censé recevoir!

J'ai préféré, pour m'assurer de rendre la requête plus performante, la reconstruire à partir de zéro. En effet, nous faisions une jointure sur une vue, cela faisait des "full table access" à chacune des jointures... assez gourmand en performance on peut dire!

J'ai donc réussi à régler les problèmes de performance. Et pour ce qui est du deuxième problème, Éric Bédard, notre DBA, m'a expliqué comment réalisé un vrai outer join dans la clause where avec Oracle. Il faut mettre un (+) à côté du table1.id = table2.id.

Voilà! Tout fonctionne. Reste plus qu'à corriger l'affichage!



jeudi 26 mars 2009

Jeudi

Comme je n'ai pas eu le temps de réaliser entièrement la page des résultats d'un étudiant hier, j'ai poursuivi cette tâche aujourd'hui. J'ai expérimenté pas mal avec le contrôle RadPanelBar de Telerik. Pour gérer mon affichage, il est complètement super! Je peux mettre un contrôle Literal dans celui-ci et comme cela, à moi de gérer les possibilités infinies d'affichage!!! Héhé!

Sébastien a terminé une requête censé me retourner tous les résultats nécessaires pour ma page, alors j'ai réalisé le web service pour la faire exécuter et récupérer les données. Une fois terminé, je me suis rendu compte qu'il me manquais certaines données pour ma page, dont la note globale pour un cours ainsi que la bonne date de fin pour le cours en question. Je n'ai plus le temps de faire cela aujourd'hui, je ferai cela demain!

mercredi 25 mars 2009

Mercredi

Aucun problème majeur aujourd'hui. J'ai surtout expérimenté avec les diverses possibilités de certains contrôles Telerik.
J,ai commencé à réaliser la page d'affichage des résultats d'un étudiant. Je doit afficher les résultats obtenus dans chacun de ses travaux des deux dernières années. On s'imagine qu'il est possible q'en deux ans, l'étudiant peut avoir plusieurs cours et travaux! Comme tous les résultats sont affichés dans une seule et même page, elle peut donc devenir assez longue!
Pour palier à ce problème, j'ai décidé d'utiliser le contrôle Telerik RadPanelBar. Ceci nous permet d'ouvrir et de fermer différents panneaux dans une page. Évidemment, comme tous les contrôles Telerik, ce contrôles est "skinnable" ;-). Comme cela, j'affiche chacun des cours dans un panneau fermé avec la période dans laquelle se déroulait le cours et le code de ce cours dans l'entête du panneau.
J'ai donc réalisé une bonne partie de l'affichage aujourd'hui pendant que Sébastien travaillait sur la requête pour me retourner les résultats.

mardi 24 mars 2009

Mardi

Aujourd'hui, j'ai travaillé principalement sur les pages du portail mobile. J'ai réalisé une version mobile des pages que Sébastien avait terminé pour le portail étudiant version poste de travail. J'ai décidé de repasser aussi sur certaines choses que j'avais faites durant les dernières semaines pour embellir le tout.
J'ai bloqué un certain moment aujourd'hui sur une chose qui semblait simple, mais que j'ai finalement abandonné pour l'instant. Pour afficher certains contenus qui ne sont pas gérés directement par le portail étudiant, nous affichons le contenu en question dans un IFrame. Je sais, je sais... les IFrame ne sont pas très bien perçus par les développeur web, mais bon... pour ce que nous voulons faire, nous n'avons pas beaucoup de choix. Les pages en question que nous voulons implémenter dans notre portail sans en incorporer la gestion sont en aspx. Elles s'incorporent très bien au design de notre site lorsque nous les chargeons directement dans la section de contenu du portail. Par contre, nous ne pouvons pas faire de "include", car pour ce faire, le fichier aspx serait directement chargé dans le div de contenu. L'entête aspx du fichier chargé serait alors redéfinie dans le div. La page aspx contenant l'autre page détecterait alors 2 headers et du coup, tout plante. Voilà la raison pour laquelle nous avons choisi le IFrame.
Mais je m'écarte du sujet. Ce que je voulais faire, c'est réussir à définir la hauteur du IFrame selon son contenu, de façons à ne pas obtenir une deuxième barre de défilement dans la page, comme cela l'illustre l'image suivante.












Malheureusement, avec une fonction JavaScrit réalisant cela, j'obtiens une erreur de droit d'accès au contenu de page. Normal, sinon n'importe qui pourrait copier la page pour effectuer une fraude...

En tout cas... je reviendrai la dessus une autre fois!

lundi 23 mars 2009

Lundi

Ce matin, j'ai terminé la version mobile de la page de suivi des activités. J'ai finalement terminé la gestion de la pagination. De plus, je suis capable d'afficher à l'entrée de l'utilisateur sur la page la page affichant les prochaines activités à venir, c'est-à-dire les activités de la journée courante ou celles imminentes.
En après-midi, j'ai réalisé un petit plus bien pratique que je voulais mettre en œuvre. J'affiche maintenant sur la page d'accueil du portail étudiant les 5 prochaines activités à venir de l'étudiant connecté de la même façon que j'affiche la grille des activités dans la page de suivi des activités. Ça a été vraiment plus rapide à réaliser que la réalisation de cette dernière. En moins d'une heure, j'avais un algorithme fonctionnel et l'affichage était identique!