def album_modify(self, **kw): operation = kw.pop('operation') id = kw.pop('id') referer = kw.pop('referer') album = gordon_model.Album.query.get(id) modfields = list() if operation == 'edit': for field in kw.keys(): if album.__getattribute__(field) <> kw[field]: modfields.append(field) album.__setattr__(field, kw[field]) #not sure how to set a value using field name so we use eval exec('album.%s=%s' % (field, repr(kw[field]))) if len(modfields) > 0: st = 'Saved album %s with field(s) %s' % ( str(id), string.join(modfields, ',')) else: st = 'Nothing to save in album %s' % str(id) flash(st) if referer.count('resolve') > 0: raise (redirect(referer)) else: raise redirect('/album/%s/edit' % id) elif operation == 'delete': gordon_db.delete_album(album) flash('Deleted album %s' % str(id)) redirect(referer) elif operation == 'deletetracks': for field in kw.keys(): #delete checked tracks if kw[field] == 'on': try: id = int(field) track = gordon_model.Track.query.get(id) print 'Deleting', track gordon_db.delete_track(track) except: print 'Could not delete track', field redirect(referer)
def album_modify(self,**kw): operation=kw.pop('operation') id=kw.pop('id') referer=kw.pop('referer') album = gordon_model.Album.query.get(id) modfields=list() if operation=='edit' : for field in kw.keys() : if album.__getattribute__(field)<> kw[field] : modfields.append(field) album.__setattr__(field,kw[field]) #not sure how to set a value using field name so we use eval exec('album.%s=%s' % (field,repr(kw[field]))) if len(modfields)>0 : st='Saved album %s with field(s) %s' % (str(id),string.join(modfields,',')) else : st='Nothing to save in album %s'% str(id) flash(st) if referer.count('resolve')>0 : raise(redirect(referer)) else : raise redirect('/album/%s/edit' % id) elif operation=='delete' : gordon_db.delete_album(album) flash('Deleted album %s' % str(id)) redirect(referer) elif operation=='deletetracks' : for field in kw.keys() : #delete checked tracks if kw[field]=='on' : try : id = int(field) track = gordon_model.Track.query.get(id) print 'Deleting',track gordon_db.delete_track(track) except : print 'Could not delete track',field redirect(referer)
def track_modify(self, **kw): operation = kw.pop('operation') id = kw.pop('id') referer = kw.pop('referer') track = gordon_model.Track.query.get(id) modfields = list() if operation == 'edit': for field in kw.keys(): #if track._SO_getValue(field)<> kw[field] : if track.__getattribute__(field) <> kw[field]: modfields.append(field) track.__setattr__(field, kw[field]) #not sure how to set a value using field name so we use eval #exec('track.%s=%s' % (field,repr(kw[field]))) if len(modfields) > 0: st = 'Saved track %s with field(s) %s' % ( str(id), string.join(modfields, ',')) else: st = 'Nothing to save in track %s' % str(id) flash(st) if referer.count('resolve') > 0: raise (redirect(referer)) else: raise redirect('/track/%s/edit' % id) elif operation == 'delete': #decrement track count for related album #I wish this could happen in the gordon_model.Track class but can't figure out how to get things to work. gordon_db.delete_track(track) #albums = track.albums; #session.delete(track) flash('Deleted track %s' % str(id)) for album in albums: if album.trackcount > 0: print 'Decrementing track count of album', album album.trackcount -= 1 print 'gordon_model.Album track count is now', album.trackcount redirect(referer)
def track_modify(self,**kw): operation=kw.pop('operation') id=kw.pop('id') referer=kw.pop('referer') track = gordon_model.Track.query.get(id) modfields=list() if operation=='edit' : for field in kw.keys() : #if track._SO_getValue(field)<> kw[field] : if track.__getattribute__(field)<> kw[field] : modfields.append(field) track.__setattr__(field,kw[field]) #not sure how to set a value using field name so we use eval #exec('track.%s=%s' % (field,repr(kw[field]))) if len(modfields)>0 : st='Saved track %s with field(s) %s' % (str(id),string.join(modfields,',')) else : st='Nothing to save in track %s'% str(id) flash(st) if referer.count('resolve')>0 : raise(redirect(referer)) else : raise redirect('/track/%s/edit' % id) elif operation=='delete' : #decrement track count for related album #I wish this could happen in the gordon_model.Track class but can't figure out how to get things to work. gordon_db.delete_track(track) #albums = track.albums; #session.delete(track) flash('Deleted track %s' % str(id)) for album in albums: if album.trackcount>0 : print 'Decrementing track count of album',album album.trackcount-=1 print 'gordon_model.Album track count is now',album.trackcount redirect(referer)