コード例 #1
0
    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
コード例 #2
0
ファイル: utils.py プロジェクト: gitesdewallonie/gites.map
    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
コード例 #3
0
 def getSearchIndex(self, tableName):
     """
     Returns the available search index in the table
     """
     wrapper = getSAWrapper('gites_wallons')
     table = wrapper.getMapper(tableName)
     return ITableSearch(table()).searchableFields
コード例 #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 ''
コード例 #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 ''
コード例 #6
0
 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()
コード例 #7
0
    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 ''
コード例 #8
0
    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)
コード例 #9
0
    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 ''
コード例 #10
0
    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 ''
コード例 #11
0
ファイル: utils.py プロジェクト: jcu-eresearch/tdh.metadata
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)
コード例 #12
0
    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
コード例 #13
0
    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 ''
コード例 #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()
コード例 #15
0
    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 ''
コード例 #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
コード例 #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
コード例 #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)
コード例 #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 ''
コード例 #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 ''
コード例 #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 ''
コード例 #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 ''
コード例 #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
コード例 #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 ''
コード例 #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 ''
コード例 #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 ''
コード例 #27
0
 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 = ""
コード例 #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)
コード例 #29
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 ''
コード例 #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
コード例 #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()
コード例 #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()
コード例 #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 ''
コード例 #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
コード例 #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)
コード例 #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
コード例 #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
コード例 #38
0
ファイル: da.py プロジェクト: bendavis78/zope
 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
コード例 #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
コード例 #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
コード例 #41
0
ファイル: da.py プロジェクト: bendavis78/zope
    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
コード例 #42
0
ファイル: root.py プロジェクト: biodec/plone4bio.biosql
 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
コード例 #43
0
ファイル: da.py プロジェクト: bendavis78/zope
    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
コード例 #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 ''
コード例 #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 ''
コード例 #46
0
 def testWrapperRegistration(self):
     wrapper = createSAWrapper(self.dsn)
     registerSAWrapper(wrapper, 'test.wrapper1')
     wrapper2 = getSAWrapper('test.wrapper1')
     self.assertEqual(wrapper, wrapper2)
コード例 #47
0
ファイル: da.py プロジェクト: bendavis78/zope
 def getInfo(self):
     """ return a dict with additional information """
     wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
     d = wrapper.kw
     d['DSN'] = wrapper.dsn
     return d
コード例 #48
0
ファイル: da.py プロジェクト: bendavis78/zope
 def _wrapper(self):
     return getSAWrapper(self.sqlalchemy_wrapper_name)
コード例 #49
0
ファイル: da.py プロジェクト: bendavis78/zope
 def getSession(self):
     """ return a session instance """
     wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
     return wrapper.session
コード例 #50
0
ファイル: da.py プロジェクト: bendavis78/zope
 def getMapper(self, name):
     """ return a mapper class """
     wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
     return wrapper.getMapper(name)
コード例 #51
0
 def testWrapperDirectRegistration(self):
     wrapper = createSAWrapper(self.dsn, name='test.wrapper3')
     wrapper2 = getSAWrapper('test.wrapper3')
     self.assertEqual(wrapper, wrapper2)
コード例 #52
0
 def connected(self):
     wrapper = getSAWrapper(self.sqlalchemy_wrapper_name)
     return wrapper._engine.connection_provider._pool.checkedin() > 0