IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zope Python Discussion :

nouveau problème sur un searchResults


Sujet :

Zope Python

  1. #1
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut nouveau problème sur un searchResults
    J'utilise un searchResults pour pouvoir faire une recherche sur un type de donnée que j'ai créé. Pour pouvoir faire la recherche sur un seul champ, j'ai mis tous les autres champs avec :
    Le problème est que je voudrais faire évoluer mon programme pour pouvoir faire une recherche sur un autre champ. Donc est ce que vous connaissez la syntaxe du searchResults pour pouvoir faire en sorte que la recherche ne se limite qu'à un champ donné ?

    Pour l'instant, je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          <span tal:define="url python:'/'.join(context.getPhysicalPath());
                            results python:here.portal_catalog.searchResults(path={'query':url}, portal_type='PersonneMorale', sort_on='id', SearchableText=type[0])" 
                tal:omit-tag="">
    De plus cette solution n'est pas géniale car mes objets n'apparaitrons pas lors d'une recherche globale sur le site.

  2. #2
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    J'ai trouvé une solution, mais c'est à mon avis loin d'être la meilleur. Je fais ma requête classique (cf le post au dessus), puis je fais passer le résultat dans une fonction de filtre que j'ai programmé pour ne récupérer que les résultats qui m'intéressent.

    C'est pas le pied mais ça marche.

    Mais une question me tarrode : est ce que c'est bien la bonne fonction que j'utilise ? Est ce qu'il n'y a pas une fonction qui permettrais de faire ce que je cherche à faire directement ?

    Bref n'hésitez pas à répondre à mon post si vous avez des pistes à me donner. Surtout que je me sens un peu seul vu que je n'ai eu que 2 amis sur les posts que j'ai mis ici

    [calimero]C'est vraiment trop injuste ! vraiment, vraiment trop injuste ! [/calimero]

  3. #3
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    I'm a poor lonesome dévelopeur sur zope/plone ...

  4. #4
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    bonjour,
    nouvelle utilisatrice de zope/plone;
    j'ai un petit probleme sur le serachbox aussi, si tu peut m'aider ..? voila je suis sur cette partie depuis 3 semaine et je n'arrive pas a la résoudre.
    voila, j'ai une recherche effectuer dans une searchbox :
    <!-- rechercher -->
    <form name="searchform"
    action="search_by-theme"
    tal:attributes="action string:${here/absolute_url}/search_by-theme">
    <input class="searchButton"
    type="submit"
    value="Search"
    accesskey="accesskeys-search"
    tal:attributes="tabindex tabindex/next" i18n:attributes="value accesskey" />
    in
    <select name="theme_selection"> <option value="theme">Genomics</option>.
    <option value="theme">Biology</option>
    <option value="theme">Chemistry</option>
    <option value="theme">Cross domain</option>
    <option value="theme">Proteomics</option>
    <option value="theme">Structure activity</option>
    <option value="theme">Other</option>
    </select>
    </form>
    *************
    dans mon "search_by-theme" je n'arrive pas a fixee la valeur de theme = theme_selection ,comment faire?
    j'ai esseyer d'afficher directement les themes existants dans mon portlet histoire de voir si je peut recuperer les themes, et dé que je clique dessue la liste de ces commposants s'affiche, ça marche (j'ai reusi a ecrire le bon code).
    Mai je n'arrive pas a fair une selection d'un element de ma liste et de lancer la recherche apres.

    SVP donner moi un coup de main sans me dire que c'est un truc facile, va voir des cours de html ou autre. je suis pas informaticienne, et j'ai passer du temps dessue sans rien, alors aidez moi.
    Merci d'avance

  5. #5
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    Salut,

    déjà, un petit conseil :
    pour que ton code soit plus lisible met le entre les balises [*code] et [*/code] (sans les *) et rajoute des espaces devant les chaque ligne afin d'avoir les balises ouvrantes et fermantes sur une même colonne. Ca permet de lire plus facilement le code que tu as fait.

    ça donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <!-- rechercher -->
    <form name="searchform"
          action="search_by-theme"
          tal:attributes="action string:${here/absolute_url}/search_by-theme">
      <input class="searchButton"
             type="submit"
             value="Search"
             accesskey="accesskeys-search"
             tal:attributes="tabindex tabindex/next" 
             i18n:attributes="value accesskey" />
      in
      <select name="theme_selection">
        <option value="theme">Genomics</option>.
        <option value="theme">Biology</option>
        <option value="theme">Chemistry</option>
        <option value="theme">Cross domain</option>
        <option value="theme">Proteomics</option>
        <option value="theme">Structure activity</option>
        <option value="theme">Other</option>
      </select>
    </form>
    Premier petit problème (mais ça ne va pas résoudre ton problème principal), après ta première option tu as mis un point qui ne sers à priori à rien. (d'ailleurs, je pense qu'il ne doit pas s'afficher). Donc tu peux l'enlever.

    Ensuite, je pense que ton problème se situe dans tes options. En effet sur chaque ligne tu as mis value="theme". Ce qui fait que quelle que soit la valeur que tu va séléctionner, ta variable theme_selection aura la valeur "theme". Il faut donc que tu mettes, dans chaque value, la valeur que tu veux récupérer dans la page suivante.

    Par exemple, ça peut donner ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <!-- rechercher -->
    <form name="searchform"
          action="search_by-theme"
          tal:attributes="action string:${here/absolute_url}/search_by-theme">
      <input class="searchButton"
             type="submit"
             value="Search"
             accesskey="accesskeys-search"
             tal:attributes="tabindex tabindex/next" 
             i18n:attributes="value accesskey" />
      in
      <select name="theme_selection">
        <option value="Genomics">Genomics</option>
        <option value="Biology">Biology</option>
        <option value="Chemistry">Chemistry</option>
        <option value="Cross domain">Cross domain</option>
        <option value="Proteomics">Proteomics</option>
        <option value="Structure activity">Structure activity</option>
        <option value="Other">Other</option>
      </select>
    </form>
    Voilà, pour résumer, lorsque tu fais une liste déroulante, ce que tu mets entre les balises <option> et </option> correspond à la valeur que tu veux afficher à l'écran et la valeur que tu mets dans l'attribut value correspond à la valeur que tu veux envoyer.

    J'espère que mes explications ont été claires, même pour une non informaticienne . Si c'est pas clair dit moi ce que tu ne comprends pas. dis moi si ça marche aussi.

  6. #6
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    Merci de m'avoir répondu;
    pour le point je l'ai enlever , faute de frappe
    j'ai aussi changer les <option value="Genomics"> mais rien a changer?
    Quand je lance ma recherche je récupere tous le themes d'un coup:
    je t'envoie le code , il me manque de signaler que mon "themes_selection"="themeID"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
       <!-- Search results -->
     
          <div class="portlet portletThirdWidth"
                   tal:repeat="themeId python:here.getThemesToList()">
    	 <tal:projects condition="themeId"
                define="packages python:here.getPackagesByTheme(themeId)">
    	        <h6>
                        <a href=""
                           tal:content="themeId"
    		       tal:attributes="href string:${here/absolute_url}/by-theme/${themeId}"
                           >         </a>              </h6>
     
    	     <tal:packages condition="nocall:packages">
                    <div class="documentDescription" 
                        tal:content="python:here.getThemeDescription(themeId)">
                    The available projects in this theme, latest first.
     
                </div>               <dl>
                      <tal:package tal:repeat="package packages">
                        <dt>                 <img tal:replace="structure here/product_icon.gif" />
                          <a tal:attributes="href package/getURL"   tal:content="package/Title">Title</a>
                          </dt>                    
                      </tal:package>
                    </dl>
                </tal:packages>
          </tal:projects>
          </div>
    si tu a une idée, j'ai esseyer de mettre au debut du code :
    <tal:condition="python:themeId=='theme_selection'"> mais cela ne marche pas.
    merci d'avance

  7. #7
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    essaye de mettre ça à la place de ton tal:projects

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <tal:projects condition="python:themeId==theme_selection"
         define="packages python:here.getPackagesByTheme(themeId);
                 theme_selection request/theme_selection">
    Un problème que je vois dans ton code, c'est que tu ne récupère pas l'élément sélectionné dans ta liste précédente. C'est ce que j'ai rajouté dans la dernière ligne. Ensuite je le compare avec le themeId dans la première ligne.

    Voilà.

    Est ce que ça marche ?

  8. #8
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 127
    Points : 60
    Points
    60
    Par défaut
    Merci, ça marche

    ça ma prit la tete pour rien
    il falai mettre theme_selection==themeId la ou il faut!!
    Merci encore

  9. #9
    Membre régulier Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Points : 115
    Points
    115
    Par défaut
    de rien

Discussions similaires

  1. Nouveau Problème sur le comptage des cellules NON VIDES
    Par tyndare36 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/02/2014, 18h18
  2. Problème installation d'un nouveau site sur IIS
    Par van___fanel dans le forum IIS
    Réponses: 0
    Dernier message: 25/02/2010, 15h37
  3. PHP4 et 5 sur même serveur : nouveau problème
    Par maxlefou dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 19/02/2007, 15h39
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo