def _create_sa_wrapper(self):
        """."""
        try:
            wrapper = getSAWrapper(self.util_id)
        except ValueError:
            try:
                if self.util_id is None:
                    self._new_utilid()

                wrapper = createSAWrapper(
                    self.dsn,
                    forZope=True,
                    transactional=True,
                    extension_options={'initial_state': 'invalidated'},
                    engine_options=self.engine_options_dict,
                    name=self.util_id)

                register_z3c(self.id, wrapper)
            except ValueError:
                try:
                    wrapper = getSAWrapper(self.util_id)
                except LookupError:
                    wrapper = lookup_entry(self.id)
                except Exception:
                    wrapper = None

        return wrapper
Esempio n. 2
0
    def getInfosTouristiques(self, infoType, infoTypePk, location=None):
        wrapper = getSAWrapper('gites_wallons')
        InfoTouristique = wrapper.getMapper('info_touristique')
        TypeInfoTouristique = wrapper.getMapper('type_info_touristique')
        query = select([InfoTouristique.infotour_nom,
                        InfoTouristique.infotour_url,
                        InfoTouristique.infotour_gps_long,
                        InfoTouristique.infotour_gps_lat,
                        TypeInfoTouristique.typinfotour_nom_fr,
                        InfoTouristique.infotour_localite],
                       InfoTouristique.infotour_type_infotour_fk == infoTypePk)
        if location:
            query.append_whereclause(InfoTouristique.infotour_location.distance_sphere(location) < DISTANCE_METERS)

        query.append_whereclause(TypeInfoTouristique.typinfotour_pk == InfoTouristique.infotour_type_infotour_fk)
        infos = query.execute().fetchall()
        results = []
        for info in infos:
            title = '<a href="http://%s" title="%s" target="_blank">%s</a>' % (info.infotour_url,
                                                                               info.infotour_nom,
                                                                               info.infotour_nom)
            results.append({'types': [infoType],
                            'name': title,
                            'vicinity': info.infotour_localite,
                            'latitude': info.infotour_gps_lat,
                            'longitude': info.infotour_gps_long})
        return results
 def getSearchIndex(self, tableName):
     """
     Returns the available search index in the table
     """
     wrapper = getSAWrapper('gites_wallons')
     table = wrapper.getMapper(tableName)
     return ITableSearch(table()).searchableFields
Esempio n. 4
0
    def updateClasse(self):
        """
        Updates un événement acté lié à un dossier
        """

        fields = self.context.REQUEST

        classePk = getattr(fields, 'classePk')
        classeNom = getattr(fields, 'classeNom')
        classeTitulaire01Pk = fields.get('classeTitulaire01Pk', None)
        classeTitulaire02Pk = fields.get('classeTitulaire02Pk', None)

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        query = session.query(ClasseIsm)
        query = query.filter(ClasseIsm.classeism_pk == classePk)
        classe = query.one()
        classe.classeism_nom = unicode(classeNom, 'utf-8')
        classe.classeism_titulaire_01_fk = classeTitulaire01Pk
        classe.classeism_titulaire_02_fk = classeTitulaire02Pk
        session.flush()

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"La classe a bien été modifiée !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/institut-sainte-marie/ajouter-une-classe-ism?classePk=%s" % (portalUrl, classePk)
        self.request.response.redirect(url)
        return ''
Esempio n. 5
0
    def insertClasse(self):
        """
        insère un nouvel classe
        """
        fields = self.context.REQUEST

        classeNom = getattr(fields, 'classeNom')
        classeTitulaire01Pk = fields.get('classeTitulaire01Pk', None)
        classeTitulaire02Pk = fields.get('classeTitulaire02Pk', None)

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        newEntry = ClasseIsm(classeism_nom=classeNom,
                             classeism_titulaire_01_fk=classeTitulaire01Pk,
                             classeism_titulaire_02_fk=classeTitulaire02Pk)
        session.add(newEntry)
        session.flush()
        session.refresh(newEntry)

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"La nouvelle classe a bien été ajoutée !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/institut-sainte-marie/ajouter-une-classe-ism" % (portalUrl)
        self.request.response.redirect(url)
        return ''
 def getHebergementByNameOrPk(self, reference):
     """
     Get the url of the hebergement by Pk or part of the name
     """
     wrapper = getSAWrapper('gites_wallons')
     session = wrapper.session
     hebTable = wrapper.getMapper('hebergement')
     try:
         int(reference)
     except ValueError:
         pass
     else:
         # we have a heb pk to search for
         hebergement = session.query(hebTable).get(reference)
         if hebergement and int(hebergement.heb_site_public) == 1 and hebergement.proprio.pro_etat:
            # L'hébergement doit être actif, ainsi que son propriétaire
             hebURL = getMultiAdapter((hebergement.__of__(self.context.hebergement), self.request), name="url")
             self.request.response.redirect(str(hebURL))
             return ''
         else:
             portal = getToolByName(self.context, 'portal_url').getPortalObject()
             return getMultiAdapter((portal, self.request),
                                    name="unknown_gites")()
     zope.interface.alsoProvides(self.request, IMapRequest)
     return self.search_results()
    def deleteEvenementActeDocumentByDocumentPk(self):
        """
        suppression d'un fichier attache a un evenement acte dans la db
        """
        fields = self.context.REQUEST
        fichierNom = getattr(fields, 'fichierNom', None)
        evenementActePk = getattr(fields, 'evenementActePk', None)
        documentPk = getattr(fields, 'documentPk', None)
        elevePk = getattr(fields, 'elevePk', None)
        dossierDisciplinaire = self.getDossierByEleve(elevePk)
        dossierDisciplinairePk = dossierDisciplinaire.dosdis_pk
        auteurPk = self.getAuteurPk()

        #suppression dans la table evenement_acte_document
        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        query = session.query(EvenementActeDocument)
        query = query.filter(EvenementActeDocument.eventactdoc_pk == documentPk)
        document = query.one()
        session.delete(document)
        session.flush()

        self.insertLogOperation('deleteEvenementActeDocumentFromDb', auteurPk, dossierDisciplinairePk, evenementActePk)
        self.deleteEvenementActeDocumentFromLfs(fichierNom, auteurPk, dossierDisciplinairePk, evenementActePk)

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Le pdf a bien été suprimé !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/institut-sainte-marie/la-salle-des-profs/gestion-des-dossiers-disciplinaires/ajouter-un-evenement-au-dossier?elevePk=%s" % (portalUrl, elevePk)
        self.request.response.redirect(url)
        return ''
    def addEvenementActeDocument(self, evenementActePk, dossierDisciplinairePk):
        """
        ajout d'un fichier dans le localfs 'localfs_ism_event_act'
        comme document lié à une eventment acte
        """
        ismTools = getMultiAdapter((self.context, self.request), name="manageISM")
        dateCreation = ismTools.getTimeStamp()
        auteurPk = self.getAuteurPk()

        fields = self.context.REQUEST
        evenementActeDocument = getattr(fields, 'fichierAttache')
        dossierDisciplinairePk = getattr(fields, 'dossierDisciplinairePk')

        lfsEventActe = getattr(self.context, 'localfs_ism_event_act')
        lfs = getattr(lfsEventActe, 'localfs_ism_event_act')
        filename, ext = os.path.splitext(evenementActeDocument.filename)
        normalizedFilename = normalizeString(filename, encoding='utf-8')
        nomFichier = '%s_dd%s_ev%s%s' % (normalizedFilename, dossierDisciplinairePk, evenementActePk, ext)
        lfs.manage_upload(evenementActeDocument, id=nomFichier)

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        newEntry = EvenementActeDocument(eventactdoc_date_creation=dateCreation,
                                         eventactdoc_auteur_creation=auteurPk,
                                         eventactdoc_nom_fichier=nomFichier,
                                         eventactdoc_auteur_creation_fk=auteurPk,
                                         eventactdoc_eventact_fk=evenementActePk,
                                         eventactdoc_dossier_disciplinaire_fk=dossierDisciplinairePk)
        session.add(newEntry)
        session.flush()
        self.insertLogOperation('addEvenementActeDocument', auteurPk, dossierDisciplinairePk, evenementActePk)
    def deleteEvenementActe(self):
        """
        Supprimer un événement acté lié à un dossier
        """
        fields = self.request.form

        elevePk = fields.get('elevePk')
        evenementActePk = fields.get('evenementActePk', None)
        dossierDisciplinairePk = fields.get('dossierDisciplinairePk', None)
        auteurPk = self.getAuteurPk()

        self.deleteLogModificationEvenementActe()
        self.deleteAllEvenementActeDocumentByEvenementPk()

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        query = session.query(EvenementActe)
        query = query.filter(EvenementActe.eventact_pk == evenementActePk)
        evenementActe = query.one()
        session.delete(evenementActe)
        session.flush()

        self.insertLogOperation('deleteEvenementActe', auteurPk, dossierDisciplinairePk, evenementActePk)

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"L'événement a bien été supprimé !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/institut-sainte-marie/la-salle-des-profs/gestion-des-dossiers-disciplinaires/ajouter-un-evenement-au-dossier?elevePk=%s" % (portalUrl, elevePk)
        self.request.response.redirect(url)
        return ''
    def deleteDossierDisciplinaire(self):
        """
        Supprimer un dossier disciplinaire et ses event actés
        """
        fields = self.request.form

        dossierDisciplinairePk = fields.get('dossierDisciplinairePk')
        elevePk = fields.get('elevePk')
        #evenementActePk = fields.get('evenementActePk', None)
        auteurPk = self.getAuteurPk()

        self.deleteEvenementActeByDossierDisciplinaire(dossierDisciplinairePk)
        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        query = session.query(DossierDisciplinaire)
        query = query.filter(DossierDisciplinaire.dosdis_pk == dossierDisciplinairePk)
        dossierDisciplinaire = query.one()
        session.delete(dossierDisciplinaire)
        session.flush()
        self.deleteEleveDosDis(elevePk)

        self.insertLogOperation('deleteDossierDisciplinaire', auteurPk, dossierDisciplinairePk)

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Le dossier disciplinaire et les événements qui lui sont liés ont bien été supprimés !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/institut-sainte-marie/la-salle-des-profs/gestion-des-dossiers-disciplinaires/ajouter-un-dossier-disciplinaire" % (portalUrl)
        self.request.response.redirect(url)
        return ''
Esempio n. 11
0
def createAndRegisterSAMapper(db_connector, table_name, db_schema,
                              table_name_absolute, mapper_class,
                              column_overrides=[], primary_keys=[]):
    """Open up our connection to a table in a database and do it early.

    Specify your primary keys in a list in the primary_keys argument (column
    IDs only.

    You can override column definitions in the SQLAlchemy autoload
    by specifying Column() objects in a list as the column_overrides argument.
    These get passed into the table creator as the "override" technique.
    See http://www.sqlalchemy.org/docs/core/schema.html#overriding-reflected-columns for more info.
    """

    if db_connector=='':
        return

    sa_wrapper = getSAWrapper(db_connector)
    table = Table(table_name,
                  sa_wrapper.metadata,
                  schema=db_schema,
                  *column_overrides,
                  autoload=True)
    resolved_pks = [table.c.get(key) for key in primary_keys]
    mapper_ = mapper(mapper_class,
                     table,
                     primary_key=resolved_pks,
                     properties={})
    sa_wrapper.registerMapper(mapper_, name=table_name_absolute)
    def getSearchingEleveDosDis(self, elevePk=None):
        """
        table pg eleve
        recuperation d'un auteur selon la pk
        la pk peut arriver via le form en hidden ou via un lien construit,
         (cas du listing de resultat de moteur de recherche)
        je teste si la pk arrive par param, si pas je prends celle du form
        """
        fields = self.request.form
        eleveNom = fields.get('eleveNom', None)

        if not elevePk:
            elevePk = fields.get('eleve_pk')

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        query = session.query(EleveDossierDisciplinaire)
        if eleveNom:
            eleveNom = eleveNom.split(',')
            eleveNom = eleveNom[0]
            eleveNom = eleveNom.decode('utf-8')
            query = query.filter(EleveDossierDisciplinaire.eleve_nom == eleveNom)
        if elevePk:
            query = query.filter(EleveDossierDisciplinaire.eleve_pk == elevePk)
        allEleves = query.all()
        return allEleves
    def updateDemandeIntervention(self):
        """
        table pg demande d'intervention
        mise a jour d'une demande d'intervention
        """
        commonTools = getMultiAdapter((self.context, self.request), name="manageCommon")
        employeModification = commonTools.getUserAuthenticated()

        fields = self.request.form
        interventionPk = fields.get('interventionPk', None)
        etatInterventionByIpplf = fields.get('etatInterventionByIpplf', None)
        commentaireByIpplf = fields.get('commentaireByIpplf', None)

        wrapper = getSAWrapper('ipplf')
        session = wrapper.session
        updateIntervention = wrapper.getMapper('demande_intervention')
        query = session.query(updateIntervention)
        query = query.filter(updateIntervention.di_pk == interventionPk)
        demandeIntervention = query.one()
        demandeIntervention.di_etat_ipplf = unicode(etatInterventionByIpplf, 'utf-8')
        demandeIntervention.di_commentaire_ipplf = unicode(commentaireByIpplf, 'utf-8')
        demandeIntervention.di_employe_modification = unicode(employeModification, 'utf-8')

        session.flush()

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"L'intervention a bien été modifiée !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/detail-demande-d-intervention?diPk=%s" % (portalUrl, interventionPk)
        self.request.response.redirect(url)
        return ''
Esempio n. 14
0
 def insertProprioMaj(self):
     """
     insère les infos mise à jour par proprio dans table provisoire
     """
     fields = self.request
     proPk = fields.get('pro_maj_propk')
     wrapper = getSAWrapper('gites_wallons')
     session = wrapper.session
     insertProprioMaj = wrapper.getMapper('proprio_maj')
     newEntry = insertProprioMaj(pro_maj_propk=proPk,\
                                 pro_maj_civ_fk=fields.get('pro_maj_civ_fk'),\
                                 pro_maj_nom1=fields.get('pro_maj_nom1'),\
                                 pro_maj_prenom1=fields.get('pro_maj_prenom1'),\
                                 pro_maj_nom2=fields.get('pro_maj_nom2'),\
                                 pro_maj_prenom2=fields.get('pro_maj_prenom2'),\
                                 pro_maj_societe=fields.get('pro_maj_societe'),\
                                 pro_maj_adresse=fields.get('pro_maj_adresse'),\
                                 pro_maj_com_fk=fields.get('pro_maj_com_fk'),\
                                 pro_maj_email=fields.get('pro_maj_email'),\
                                 pro_maj_tel_priv=fields.get('pro_maj_tel_priv'),\
                                 pro_maj_fax_priv=fields.get('pro_maj_fax_priv'),\
                                 pro_maj_gsm1=fields.get('pro_maj_gsm1'),\
                                 pro_maj_tva=fields.get('pro_maj_tva'),\
                                 pro_maj_langue=fields.get('pro_maj_langue'), \
                                 pro_maj_date_naiss=fields.get('pro_maj_date_naiss') or None,\
                                 )
     session.add(newEntry)
     session.flush()
    def insertDossier(self, elevePk, eleveNom, eleveClasse):
        """
        insère un nouveau dossier disciplinaire
        """
        ismTools = getMultiAdapter((self.context, self.request), name="manageISM")
        dossierDisciplianireID = self.getDossierId(elevePk, eleveNom, eleveClasse)
        dossierDisciplianireAnneeScolaire = ismTools.getAnneeCourante()
        dossierDisciplianireElevePk = elevePk
        auteurPk = self.getAuteurPk()

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        newEntry = DossierDisciplinaire(dosdis_id=dossierDisciplianireID,
                                        dosdis_annee_scolaire=dossierDisciplianireAnneeScolaire,
                                        dosdis_actif=True,
                                        dosdis_eleve_fk=dossierDisciplianireElevePk,
                                        dosdis_auteur_fk=auteurPk)
        session.add(newEntry)
        session.flush()
        session.refresh(newEntry)
        dossierDisciplinairePk = newEntry.dosdis_pk

        self.insertLogOperation('insertDossier', auteurPk, dossierDisciplinairePk)

        self.sendMailForNewDossier(elevePk)

        return ''
Esempio n. 16
0
    def getSearchingAffiche(self, affichePk=None, searchingLetter=None):
        """
        table pg affiche
        recuperation d'une affiche selon la pk
        la pk peut arriver via le form en hidden ou via un lien construit,
         (cas du listing de resultat de moteur de recherche)
        je teste si la pk arrive par param, si pas je prends celle du form
        """
        fields = self.request.form
        afficheTitre = fields.get('afficheTitre')
        if not affichePk:
            affichePk = fields.get('affiche_pk')

        wrapper = getSAWrapper('cenforsoc')
        session = wrapper.session
        AfficheTable = wrapper.getMapper('affiche')
        query = session.query(AfficheTable)
        if afficheTitre:
            query = query.filter(AfficheTable.affiche_titre == afficheTitre)
        if affichePk:
            query = query.filter(AfficheTable.affiche_pk == affichePk)
        if searchingLetter:
            query = query.filter(AfficheTable.affiche_titre.ilike("%%%s" % searchingLetter))
        allAffiches = query.all()
        return allAffiches
Esempio n. 17
0
    def query(self, query_string, max_rows=None, query_data=None):
        """ *The* query() method as used by the internal ZSQL
            machinery.
        """

        wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
        c = wrapper.connection

        rows = []
        desc = None
        nselects = 0

        ts_start = time.time()

        for qs in [x for x in query_string.split('\0') if x]:

            LOG.debug(qs)

            if query_data:
                proxy = c.execute(qs, query_data)
            else:
                proxy = c.execute(qs)

            description = proxy.cursor.description

            if description is not None:
                nselects += 1

                if nselects > 1:
                    raise ValueError(
                        "Can't execute multiple SELECTs within a single query")

                if max_rows:
                    rows = proxy.fetchmany(max_rows)
                else:
                    rows = proxy.fetchall()

                desc = description
                types_map = self._typesMap(proxy)

        LOG.debug('Execution time: %3.3f seconds' % (time.time() - ts_start))

        if desc is None:
            return [], None

        items = []
        for name, type_code, width, internal_size, precision, scale, null_ok in desc:

            items.append({
                'name':
                name,
                'type':
                types_mapping.get(types_map.get(type_code, None), 's'),
                'null':
                null_ok,
                'width':
                width,
            })

        return items, rows
Esempio n. 18
0
 def getCapaciteTotalGroupementByPk(self, hebPk):
     wrapper = getSAWrapper('gites_wallons')
     session = wrapper.session
     query = session.query(Hebergement.heb_nom.label('heb_nom'),
                           Hebergement.heb_cgt_nbre_chmbre.label('heb_cgt_nbre_chmbre'),
                           Hebergement.heb_cgt_cap_min.label('heb_cgt_cap_min'),
                           Hebergement.heb_cgt_cap_max.label('heb_cgt_cap_max'),
                           TypeHebergement.type_heb_id.label('heb_type'),
                           TypeHebergement.type_heb_type.label('heb_type_type'),
                           TypeHebergement.type_heb_code.label('heb_type_code'),
                           Hebergement.heb_code_gdw.label('heb_code_gdw'),
                           Hebergement.heb_pk.label('heb_pk'),
                           LinkHebergementEpis.heb_nombre_epis.label('heb_nombre_epis'),
                           Hebergement.heb_localite.label('heb_localite'),
                           Hebergement.heb_gps_long.label('heb_gps_long'),
                           Hebergement.heb_gps_lat.label('heb_gps_lat'),
                           Hebergement.heb_groupement_pk.label('heb_groupement_pk'),
                           HebergementApp.heb_app_groupement_line_length.label('heb_app_groupement_line_length'),
                           HebergementApp.heb_app_groupement_angle_start.label('heb_app_groupement_angle_start')
                           )
     query = query.join('proprio').outerjoin('epis').join('type').join('app')
     query = query.options(FromCache('gdw'))
     query = query.filter(Hebergement.heb_groupement_pk == hebPk)
     query = query.filter(sa.and_(Hebergement.heb_site_public == '1',
                                  Proprio.pro_etat == True))
     groupement = query.all()
     nbreChambre = 0
     nbrePersonneMin = 0
     nbrePersonneMax = 0
     for heb in groupement:
         nbreChambre = nbreChambre + heb.heb_cgt_nbre_chmbre
         nbrePersonneMin = nbrePersonneMin + heb.heb_cgt_cap_min
         nbrePersonneMax = nbrePersonneMax + heb.heb_cgt_cap_max
     return (nbreChambre, nbrePersonneMin, nbrePersonneMax)
Esempio n. 19
0
    def insertPeriodique(self):
        """
        ajout d'un item periodique
        """
        fields = self.context.REQUEST
        periodiqueTitre = getattr(fields, 'periodiqueTitre')
        periodiqueDescription = getattr(fields, 'periodiqueDescription', None)

        wrapper = getSAWrapper('cenforsoc')
        session = wrapper.session
        insertPeriodique = wrapper.getMapper('periodique')
        newEntry = insertPeriodique(per_titre=periodiqueTitre,
                                    per_description=periodiqueDescription)
        session.add(newEntry)
        session.flush()

        session.refresh(newEntry)
        periodiquePk = newEntry.per_pk

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Vos informations ont été enregistrées !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/gestion-de-la-base/les-periodiques/admin-decrire-un-periodique?periodiquePk=%s" % (portalUrl, periodiquePk)
        self.request.response.redirect(url)
        return ''
Esempio n. 20
0
    def insertAuteur(self):
        """
        table pg auteur
        ajout d'un item Auteur
        """
        fields = self.request.form

        auteurNom = fields.get('auteurNom', None)
        auteurPrenom = fields.get('auteurPrenom', None)

        auteurNom = unicode(auteurNom, 'utf-8')
        auteurPrenom = unicode(auteurPrenom, 'utf-8')

        wrapper = getSAWrapper('cenforsoc')
        session = wrapper.session
        insertAuteur = wrapper.getMapper('auteur')
        newEntry = insertAuteur(auteur_nom=auteurNom,
                                auteur_prenom=auteurPrenom)
        session.add(newEntry)
        session.flush()
        session.refresh(newEntry)
        auteurPk = newEntry.auteur_pk

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Le nouvel auteur %s %s a bien été enregistré !" % (auteurNom, auteurPrenom)
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/gestion-de-la-base/les-auteurs/admin-decrire-un-auteur?auteurPk=%s" % (portalUrl, auteurPk)
        self.request.response.redirect(url)
        return ''
Esempio n. 21
0
    def updateAuteur(self):
        """
        table pg auteur
        mise a jour d'un item auteur
        """
        fields = self.request.form

        auteurPk = fields.get('auteurPk', None)
        auteurNom = fields.get('auteurNom', None)
        auteurPrenom = fields.get('auteurPrenom', None)

        wrapper = getSAWrapper('cenforsoc')
        session = wrapper.session
        updateAuteurTable = wrapper.getMapper('auteur')
        query = session.query(updateAuteurTable)
        query = query.filter(updateAuteurTable.auteur_pk == auteurPk)
        auteurs = query.all()
        for auteur in auteurs:
            auteur.auteur_nom = unicode(auteurNom, 'utf-8')
            auteur.auteur_prenom = unicode(auteurPrenom, 'utf-8')

        session.flush()

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"L'auteur %s %s a bien été modifié !" % (auteurNom, auteurPrenom)
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/gestion-de-la-base/les-auteurs/admin-decrire-un-auteur?auteurPk=%s" % (portalUrl, auteurPk)
        self.request.response.redirect(url)
        return ''
Esempio n. 22
0
    def deleteProfesseur(self):
        """
        Supprimer un professeur
        """
        fields = self.context.REQUEST

        profPk = getattr(fields, 'profPk', None)
        profLogin = getattr(fields, 'profLogin', None)

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        query = session.query(Professeur)
        query = query.filter(Professeur.prof_pk == profPk)
        professeur = query.one()
        session.delete(professeur)
        session.flush()

        self.delLoginProfesseur(profLogin)

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Le professeur a bien été supprimé !"
        ploneUtils.addPortalMessage(message, 'info')

        url = "%s/institut-sainte-therese/ajouter-un-professeur-ist?profPk=%s" % (
            portalUrl, profPk)
        self.request.response.redirect(url)
        return ''
Esempio n. 23
0
    def getSearchingAuteur(self, auteurPk=None):
        """
        table pg auteur
        recuperation d'un auteur selon la pk
        la pk peut arriver via le form en hidden ou via un lien construit,
         (cas du listing de resultat de moteur de recherche)
        je teste si la pk arrive par param, si pas je prends celle du form
        """
        fields = self.request.form
        auteurNom = fields.get('auteurNom', None)

        if not auteurPk:
            auteurPk = fields.get('auteur_pk')

        wrapper = getSAWrapper('cenforsoc')
        session = wrapper.session
        AuteurTable = wrapper.getMapper('auteur')
        query = session.query(AuteurTable)
        if auteurNom:
            auteurNom = auteurNom.split(',')
            auteurNom = auteurNom[0]
            auteurNom = auteurNom.decode('utf-8')
            auteurNom = auteurNom.capitalize()
            query = query.filter(AuteurTable.auteur_nom == auteurNom)
        if auteurPk:
            query = query.filter(AuteurTable.auteur_pk == auteurPk)
        allAuteurs = query.all()
        return allAuteurs
Esempio n. 24
0
    def deleteEleve(self):
        """
        Supprimer un élève
        """
        fields = self.context.REQUEST

        elevePk = getattr(fields, 'elevePk', None)
        eleveLogin = getattr(fields, 'eleveLogin', None)

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        query = session.query(EleveIsm)
        query = query.filter(EleveIsm.eleveism_pk == elevePk)
        eleve = query.one()
        session.delete(eleve)
        session.flush()

        self.delLoginEleve(eleveLogin)

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"L'élève' a bien été supprimé !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/institut-sainte-marie/ajouter-un-eleve-ism?elevefPk=%s" % (portalUrl, elevePk)
        self.request.response.redirect(url)
        return ''
Esempio n. 25
0
    def deletePeriodique(self):
        """
        table pg periodique
        suppression des periodiques
        """
        fields = self.context.REQUEST
        periodiquePk = getattr(fields, 'periodiquePk')

        wrapper = getSAWrapper('cenforsoc')
        session = wrapper.session
        deletePeriodiqueTable = wrapper.getMapper('periodique')
        query = session.query(deletePeriodiqueTable)
        query = query.filter(deletePeriodiqueTable.per_pk == periodiquePk)
        allPeriodiques = query.all()
        for periodiquePk in allPeriodiques:
            session.delete(periodiquePk)
        session.flush()

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Le périodique a été supprimé !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/gestion-de-la-base/les-periodiques/" % (portalUrl, )
        self.request.response.redirect(url)
        return ''
Esempio n. 26
0
    def updatePeriodique(self):
        """
        mise a jour d'un item periodique
        """
        fields = self.context.REQUEST
        periodiquePk = getattr(fields, 'periodiquePk')
        periodiqueTitre = getattr(fields, 'periodiqueTitre', None)
        periodiqueDescription = getattr(fields, 'periodiqueDescription', None)

        wrapper = getSAWrapper('cenforsoc')
        session = wrapper.session
        updatePeriodiqueTable = wrapper.getMapper('periodique')
        query = session.query(updatePeriodiqueTable)
        query = query.filter(updatePeriodiqueTable.per_pk == periodiquePk)
        periodiques = query.all()
        for periodique in periodiques:
            periodique.per_titre = unicode(periodiqueTitre, 'utf-8')
            periodique.per_description = unicode(periodiqueDescription, 'utf-8')

        session.flush()
        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Vos informations ont été modifiées !"
        ploneUtils.addPortalMessage(message, 'info')
        url = "%s/gestion-de-la-base/les-periodiques/admin-decrire-un-periodique?periodiquePk=%s" % (portalUrl, periodiquePk)
        self.request.response.redirect(url)
        return ''
 def handleApply(self, action):
     data, errors = self.extractData()
     if errors:
         self.status = EditForm.formErrorsMessage
         return
     wrapper = getSAWrapper('gites_wallons')
     session = wrapper.session
     config = data.get('calendarConfig')
     all_hebs = getHebergementsForProprio(
         self.context,
         session,
         only_active=False,
     )
     for heb in all_hebs:
         oldConfig = heb.heb_calendrier_proprio
         heb.heb_calendrier_proprio = config
         # mise à jour dernière date de modification du calendrier
         heb.heb_calendrier_proprio_date_maj = date.today()
         session.add(heb)
         if oldConfig != config:
             if config == u'non actif':
                 hebBlockHist = HebergementBlockingHistory()
                 hebBlockHist.heb_blockhistory_blocked_dte = date.today()
                 hebBlockHist.heb_blockhistory_heb_pk = heb.heb_pk
                 session.add(hebBlockHist)
             else:
                 blockHist = self.getBlockedInfo(session, heb.heb_pk)
                 if blockHist is not None:
                     blockHist.heb_blockhistory_activated_dte = date.today()
                     blockedDate = blockHist.heb_blockhistory_activated_dte - blockHist.heb_blockhistory_blocked_dte
                     blockHist.heb_blockhistory_days = blockedDate.days
                     session.add(blockHist)
     session.flush()
     session.expunge_all()
     self.status = ""
Esempio n. 28
0
    def getAuteurPkByAuteurNom(self, livrePk, auteurNom=None):
        """
        table pg auteur
        recuperation de la pk d'un auteur selon leur nom
        à partir de la table livre
        """
        if not auteurNom:
            return''
        else:
            nom = auteurNom.split(', ')
            auteurNom = nom[0]
            print auteurNom
            if len(nom) > 1:
                auteurPrenom = nom[1]
            else:
                auteurPrenom = None
            wrapper = getSAWrapper('cenforsoc')
            session = wrapper.session
            AuteurTable = wrapper.getMapper('auteur')
            query = session.query(AuteurTable)

            if auteurNom:
                query = query.filter(AuteurTable.auteur_nom == auteurNom)
                if auteurPrenom:
                    query = query.filter(AuteurTable.auteur_prenom == auteurPrenom)
                auteur = query.one()
                auteurPk = auteur.auteur_pk
                return (livrePk, auteurPk)
    def deleteProfesseur(self):
        """
        Supprimer un professeur
        """
        fields = self.context.REQUEST

        profPk = getattr(fields, 'profPk', None)
        profLogin = getattr(fields, 'profLogin', None)

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        query = session.query(Professeur)
        query = query.filter(Professeur.prof_pk == profPk)
        professeur = query.one()
        session.delete(professeur)
        session.flush()

        self.delLoginProfesseur(profLogin)

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Le professeur a bien été supprimé !"
        ploneUtils.addPortalMessage(message, 'info')

        url = "%s/institut-sainte-therese/ajouter-un-professeur-ist?profPk=%s" % (portalUrl, profPk)
        self.request.response.redirect(url)
        return ''
Esempio n. 30
0
    def getLivresByAuteurNom(self, auteurNom=None):
        """
        recuperation de tous les livres d'un auteur via son Nom
        """
        auteurPk = []
        if not auteurNom:
            fields = self.request.form
            auteurNom = fields.get('auteurNom', None)
        else:
            b = auteurNom.split('- ')
            auteurPk.append(int(b[1]))

        wrapper = getSAWrapper('cenforsoc')
        session = wrapper.session
        LinkLivreAuteurTable = wrapper.getMapper('link_livre_auteur')
        query = session.query(LinkLivreAuteurTable)

        for pk in auteurPk:
            query = query.filter(LinkLivreAuteurTable.auteur_fk == pk)

        allLivresPk = query.all()

        allLivres = []
        for livre in allLivresPk:
            livrePk = livre.livres.liv_pk
            livreTitre = livre.livres.liv_titre
            allLivres.append((livrePk, livreTitre))

        return allLivres
Esempio n. 31
0
 def insertHebergementMaj(self):
     """
     ajoute les infos de mise à jour de l'hébergement par le proprio
     table habergement_maj
     met dans table hebergement le champ heb_maj_info_etat à 'En attente de confirmation'
     """
     fields = self.context.REQUEST
     wrapper = getSAWrapper('gites_wallons')
     session = wrapper.session
     insertHebergementMaj = wrapper.getMapper('hebergement_maj')
     newEntry = insertHebergementMaj(
         heb_maj_hebpk=fields.get('heb_maj_hebpk'),
         heb_maj_nom=fields.get('heb_maj_nom'),
         heb_maj_url=fields.get('heb_maj_url'),
         heb_maj_adresse=fields.get('heb_maj_adresse'),
         heb_maj_localite=fields.get('heb_maj_localite'),
         heb_maj_descriptif_fr=fields.get('heb_maj_descriptif_fr'),
         heb_maj_pointfort_fr=fields.get('heb_maj_pointfort_fr'),
         heb_maj_forfait_montant=fields.get('heb_maj_forfait_montant'),
         heb_maj_lit_1p=fields.get('heb_maj_lit_1p'),
         heb_maj_lit_2p=fields.get('heb_maj_lit_2p'),
         heb_maj_lit_sup=fields.get('heb_maj_lit_sup'),
         heb_maj_lit_enf=fields.get('heb_maj_lit_enf'),
         heb_maj_distribution_fr=fields.get('heb_maj_distribution_fr'),
         heb_maj_charge_fk=fields.get('heb_maj_charge_fk'))
     session.add(newEntry)
     session.flush()
Esempio n. 32
0
 def updateProprioMaj(self):
     """
     mise à jour des données maj du proprio
     """
     fields = self.request
     proMajProPk = fields.get('pro_maj_propk')
     wrapper = getSAWrapper('gites_wallons')
     session = wrapper.session
     updateProprioMaj = wrapper.getMapper('proprio_maj')
     query = session.query(updateProprioMaj)
     query = query.filter(updateProprioMaj.pro_maj_propk == proMajProPk)
     record = query.one()
     record.pro_maj_civ_fk = fields.get('pro_maj_civ_fk')
     record.pro_maj_nom1 = fields.get('pro_maj_nom1', '')
     record.pro_maj_prenom1 = fields.get('pro_maj_prenom1', '')
     record.pro_maj_nom2 = fields.get('pro_maj_nom2', '')
     record.pro_maj_prenom2 = fields.get('pro_maj_prenom2', '')
     record.pro_maj_societe = fields.get('pro_maj_societe', '')
     record.pro_maj_adresse = fields.get('pro_maj_adresse', '')
     record.pro_maj_com_fk = fields.get('pro_maj_com_fk')
     record.pro_maj_email = fields.get('pro_maj_email')
     record.pro_maj_tel_priv = fields.get('pro_maj_tel_priv')
     record.pro_maj_fax_priv = fields.get('pro_maj_fax_priv')
     record.pro_maj_gsm1 = fields.get('pro_maj_gsm1')
     record.pro_maj_tva = fields.get('pro_maj_tva')
     record.pro_maj_langue = fields.get('pro_maj_langue')
     record.pro_maj_date_naiss = fields.get('pro_maj_date_naiss') or None
     session.flush()
Esempio n. 33
0
    def deleteAfficheFromLocalFS(self, \
                                 fileName, \
                                 for_id=None):
        """
        suppression du fichier dans le localfs
        comme  catalogue pdf de l'operateur
        suppression dans la table link_organisme_formation
        """
        #suppression dans le localfs
        rof = getattr(self.context, 'rof-questionnaire')
        lfs = getattr(rof, 'rof_pdf')
        lfs.manage_delObjects(ids=fileName)

        #suppression dans la table link_organisme_catalogue
        wrapper = getSAWrapper('apef')
        session = wrapper.session
        deleteCatalogue = wrapper.getMapper('link_organisme_catalogue')
        query = session.query(deleteCatalogue)
        query = query.filter(deleteCatalogue.c.for_catalogue == fileName)
        newEntries = query.all()
        for newEntry in newEntries:
            session.delete(newEntry)
        session.flush()

        if for_id:
            cible = "%s/rof-questionnaire/operateur-gerer-catalogue-pdf" % self.context.portal_url()
        else:
            cible = "%s/rof-questionnaire/accueil" % self.context.portal_url()
        self.context.REQUEST.RESPONSE.redirect(cible)
        return ''
Esempio n. 34
0
 def _supply_z3c_sa_wrapper(self):
     """
     Look up or create the underlying z3c.sqlalchemy `ZopeWrapper`.
     """
     if not self.dsn:
         return None
     else:
         try:
             wrapper = getSAWrapper(self.util_id)
         except ValueError:
             try:
                 if self.util_id is None:
                     # the z3c.sqlalchemy registration doesn't register None values
                     # of util_id; we need something that will stick.
                     self._new_utilid()
                 wrapper = createSAWrapper(
                     self.dsn,
                     forZope=True,
                     transactional=self.transactional,
                     extension_options={'initial_state': 'invalidated'},
                     engine_options=self.engine_options,
                     name=self.util_id)
                 register_sa_wrapper(self.id, wrapper)
             except ValueError as e:
                 # ...weird...could this be a timing issue during startup?
                 # We've seen log messages that look like this:
                 # "ValueError: SAWrapper '1435583419.58.0.991532919015' already registered.
                 # You can not register a wrapper twice under the same name."
                 # This makes little sense because we just tried a lookup under that
                 # name and did not find it. Wrapper did not exist in
                 # component registry, but did exist in the z3c.sqlalchemy
                 # registeredWrappers dict registry. Try recovering by using
                 # the module dict lookup.
                 logger.warning("Unexpected failure to create SAWrapper: " +
                                str(e))
                 try:
                     wrapper = getSAWrapper(self.util_id)
                 except LookupError as e:
                     logger.warning(
                         "SAWrapper lookup falling back to SQLAlchemyDA registry:"
                         + str(e))
                     wrapper = lookup_sa_wrapper(self.id)
                 except Exception:
                     logger.exception(
                         "No z3c.sqlalchemy ZopeWrapper found or created!")
                     wrapper = None
     return wrapper
Esempio n. 35
0
 def manage_stop(self, RESPONSE=None):
     """ close engine """
     wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
     wrapper._engine.connection_provider._pool.dispose()
     if RESPONSE:
         msg = 'Database connection halted'
         RESPONSE.redirect(self.absolute_url() +
                           '/manage_workspace?manage_tabs_message=%s' % msg)
Esempio n. 36
0
 def getAllStatutMembre(self):
     """
     recuperation de tous les status des membres (prof, direction, educateur)
     """
     wrapper = getSAWrapper('cesstex')
     session = wrapper.session
     query = session.query(StatutMembre)
     query = query.order_by(StatutMembre.statmembre_statut)
     allStatutMembre = query.all()
     return allStatutMembre
Esempio n. 37
0
 def getProfesseurByPk(self, profPk):
     """
     recuperation d'un professseur selon sa pk
     """
     wrapper = getSAWrapper('cesstex')
     session = wrapper.session
     query = session.query(Professeur)
     query = query.filter(Professeur.prof_pk == profPk)
     professeur = query.one()
     return professeur
Esempio n. 38
0
 def _wrapper(self):
     if self.dsn:
         try:
             return getSAWrapper(self.util_id)
         except ValueError:
             return createSAWrapper(self.dsn,
                                    forZope=True,
                                    transactional=self.transactional,
                                    name=self.util_id)
     return None
Esempio n. 39
0
 def getEcoleDuProfesseur(self, ecolePK):
     """
     recuperation de l'école d'un prof
     table ecole ism=1 ist=2 po=3
     """
     wrapper = getSAWrapper('cesstex')
     session = wrapper.session
     query = session.query(Ecole)
     query = query.filter(Ecole.ecole_pk == ecolePK)
     ecoleDuProfesseur = query.one()
     return ecoleDuProfesseur
Esempio n. 40
0
 def getAllProfesseurs(self, ecole):
     """
     recuperation de tous les professseurs selon ecole
     table ecole ism=1 ist=2 po=3
     """
     wrapper = getSAWrapper('cesstex')
     session = wrapper.session
     query = session.query(Professeur)
     query = query.order_by(Professeur.prof_nom)
     query = query.filter(Professeur.prof_ecole_fk == ecole)
     allProfesseurs = query.all()
     return allProfesseurs
Esempio n. 41
0
    def _wrapper(self):

        if self.dsn:
            try:
                return getSAWrapper(self.util_id)
            except ValueError:
                return createSAWrapper(
                    self.dsn,
                    forZope=True,
                    transactional=self.transactional,
                    extension_options={'initial_state': 'invalidated'},
                    engine_options=self.engine_options,
                    name=self.util_id)
        return None
Esempio n. 42
0
 def getDBServer(self):
     if not self.dsn:
         return None
     self._v_thread_local.dbconns = getattr(self._v_thread_local, 'dbconns',
                                            {})
     dbserver = self._v_thread_local.dbconns.get(self.dsn, None)
     if dbserver is None or not dbserver.adaptor.conn.is_valid:
         try:
             wrapper = getSAWrapper(self.dsn)
         except ValueError:
             wrapper = createSAWrapper(dsn=self.dsn, name=self.dsn)
         #TODO: manage OperationalError on connection
         dbserver = DBServer(wrapper.connection,
                             __import__(self.getDriver()))
         self._v_thread_local.dbconns[self.dsn] = dbserver
     return dbserver
Esempio n. 43
0
    def _wrapper(self):

        if self.dsn:
            try:
                return getSAWrapper(self.util_id)
            except ValueError:
                return createSAWrapper(self.dsn,
                                       forZope=True,
                                       transactional=self.transactional,
                                       engine_options={
                                           'convert_unicode':
                                           self.convert_unicode,
                                           'encoding': self.encoding
                                       },
                                       name=self.util_id)
        return None
Esempio n. 44
0
    def updateProfesseur(self):
        """
        Update les informations d'un professeur
        """
        fields = self.context.REQUEST

        profPk = getattr(fields, 'profPk')
        profNom = getattr(fields, 'profNom')
        profPrenom = getattr(fields, 'profPrenom', None)
        profEmail = getattr(fields, 'profEmail', None)
        profEmailCesstex = getattr(fields, 'profEmailCesstex', None)
        profLogin = getattr(fields, 'profLogin', None)
        profPass = getattr(fields, 'profPass', None)
        profStatutFk = getattr(fields, 'profStatutFk', None)

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        query = session.query(Professeur)
        query = query.filter(Professeur.prof_pk == profPk)
        professeur = query.one()
        professeur.prof_nom = unicode(profNom, 'utf-8')
        professeur.prof_prenom = unicode(profPrenom, 'utf-8')
        professeur.prof_email = unicode(profEmail, 'utf-8')
        professeur.prof_email_id = unicode(profEmailCesstex, 'utf-8')
        professeur.prof_login = unicode(profLogin, 'utf-8')
        professeur.prof_pass = unicode(profPass, 'utf-8')
        professeur.prof_statut_fk = int(profStatutFk)
        session.flush()

        userProf = ('%s %s') % (profPrenom, profNom)
        userRole = 'ProfIST'
        self.addLoginProfesseur(profLogin, profPass, userRole)
        self.addInfoProfesseur(profLogin, profEmail, userProf)

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Le professeur a bien été modifié !"
        ploneUtils.addPortalMessage(message, 'info')

        url = "%s/institut-sainte-therese/ajouter-un-professeur-ist?profPk=%s" % (
            portalUrl, profPk)
        self.request.response.redirect(url)
        return ''
Esempio n. 45
0
    def insertProfesseur(self):
        """
        insère un nouveau professeur
        """
        fields = self.context.REQUEST

        profNom = getattr(fields, 'profNom')
        profPrenom = getattr(fields, 'profPrenom', None)
        profEmail = getattr(fields, 'profEmail', None)
        profEmailCesstex = getattr(fields, 'profEmailCesstex', None)
        profLogin = getattr(fields, 'profLogin', None)
        profPass = getattr(fields, 'profPass', None)
        profStatutFk = getattr(fields, 'profStatutFk', None)
        profEcoleFk = getattr(fields, 'profEcoleFk', None)

        wrapper = getSAWrapper('cesstex')
        session = wrapper.session
        newEntry = Professeur(prof_nom=profNom,
                              prof_prenom=profPrenom,
                              prof_email=profEmail,
                              prof_email_id=profEmailCesstex,
                              prof_login=profLogin,
                              prof_pass=profPass,
                              prof_statut_fk=profStatutFk,
                              prof_ecole_fk=profEcoleFk)
        session.add(newEntry)
        session.flush()
        session.refresh(newEntry)

        userProf = ('%s %s') % (profPrenom, profNom)
        userRole = 'ProfIST'
        self.addLoginProfesseur(profLogin, profPass, userRole)
        self.addInfoProfesseur(profLogin, profEmail, userProf)

        portalUrl = getToolByName(self.context, 'portal_url')()
        ploneUtils = getToolByName(self.context, 'plone_utils')
        message = u"Le nouveau membre a bien été ajouté !"
        ploneUtils.addPortalMessage(message, 'info')

        url = "%s/institut-sainte-therese/ajouter-un-professeur-ist" % (
            portalUrl)
        self.request.response.redirect(url)
        return ''
Esempio n. 46
0
 def testWrapperRegistration(self):
     wrapper = createSAWrapper(self.dsn)
     registerSAWrapper(wrapper, 'test.wrapper1')
     wrapper2 = getSAWrapper('test.wrapper1')
     self.assertEqual(wrapper, wrapper2)
Esempio n. 47
0
 def getInfo(self):
     """ return a dict with additional information """
     wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
     d = wrapper.kw
     d['DSN'] = wrapper.dsn
     return d
Esempio n. 48
0
 def _wrapper(self):
     return getSAWrapper(self.sqlalchemy_wrapper_name)
Esempio n. 49
0
 def getSession(self):
     """ return a session instance """
     wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
     return wrapper.session
Esempio n. 50
0
 def getMapper(self, name):
     """ return a mapper class """
     wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
     return wrapper.getMapper(name)
Esempio n. 51
0
 def testWrapperDirectRegistration(self):
     wrapper = createSAWrapper(self.dsn, name='test.wrapper3')
     wrapper2 = getSAWrapper('test.wrapper3')
     self.assertEqual(wrapper, wrapper2)
Esempio n. 52
0
 def connected(self):
     wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
     return wrapper._engine.connection_provider._pool.checkedin() > 0