def _delete_profile_if_needed(channel, profile_id): from xivo_dao.helpers.db_manager import DaoSession from xivo_dao.alchemy.cti_profile import CtiProfile from xivo_dao.alchemy.ctipresences import CtiPresences from xivo_dao.alchemy.ctiphonehints import CtiPhoneHints from xivo_dao.alchemy.ctiphonehintsgroup import CtiPhoneHintsGroup from xivo_dao.alchemy.userfeatures import UserFeatures session = DaoSession() session.begin() result = session.query(CtiProfile).filter(CtiProfile.id == profile_id).first() if result is not None: (session.query(UserFeatures).filter(UserFeatures.cti_profile_id == profile_id) .update({'cti_profile_id': None})) session.delete(result) session.commit()
def _find_all_extension_ids(channel): from xivo_dao.alchemy.extension import Extension as ExtensionSchema from xivo_dao.helpers.db_manager import DaoSession rows = (DaoSession.query(ExtensionSchema.id).filter( ExtensionSchema.context != 'xivo-features').all()) extension_ids = [e.id for e in rows] channel.send(extension_ids)
def _get_exten_info(channel, extension_id): from xivo_dao.alchemy.extension import Extension as ExtensionSchema from xivo_dao.helpers.db_manager import DaoSession extension_row = (DaoSession.query(ExtensionSchema).filter( ExtensionSchema.id == extension_id).first()) if extension_row: extension = (extension_row.exten, extension_row.type, extension_row.typeval) channel.send(extension) else: channel.send(None)
def _total_voicemails(channel): from xivo_dao.alchemy.voicemail import Voicemail as VoicemailSchema from xivo_dao.helpers.db_manager import DaoSession count = DaoSession.query(VoicemailSchema).count() channel.send(count)