def createVariant(cls, commandID, row =None, **kwargs): session = Session() commandIndex = UserCommands.getIndexFromCommandID(commandID) if row is None or row < 0: row = session.query(CommandVariants).filter( CommandVariants.usrcmdfk == commandIndex ).count() for n,v in kwargs.iteritems(): if isinstance(v, str): kwargs[n] = unicode(v) variant = CommandVariants(usrcmdfk=commandIndex, row=row, **kwargs) session.add(variant) session.commit() out = variant.toButtonDict() session.close() return out
def getVariantData(cls, variantID): session = Session() variantIndex = CommandVariants.getIndexFromVariantID(variantID) result = session.query(CommandVariants).filter( CommandVariants.i == variantIndex ).first() if not result: return {'error':'No such variant'} return result.toDict()
def deleteVariant(cls, variantID): session = Session() variantIndex = CommandVariants.getIndexFromVariantID(variantID) result = session.query(CommandVariants).filter(CommandVariants.i == variantIndex).first() if result is None: session.close() return {'id':variantID} session.delete(result) session.commit() session.close() return {'id':variantID}
def reorderVariants(cls, variantIDs): session = Session() index = 0 out = [] for varID in variantIDs: varIndex = CommandVariants.getIndexFromVariantID(varID) variant = session.query(CommandVariants).filter(CommandVariants.i == varIndex).first() if not variant: continue variant.row = index out.append(variant.variantID) index += 1 session.commit() session.close() return out
def modifyVariant(cls, variantID, **kwargs): session = Session() variantIndex = CommandVariants.getIndexFromVariantID(variantID) result = session.query(CommandVariants).filter(CommandVariants.i == variantIndex).first() if result is None: session.close() return {'error':'No Such Variant'} for n,v in kwargs.iteritems(): if isinstance(v, str): v = unicode(v) setattr(result, n, v) session.commit() out = result.toButtonDict() session.close() return out