def edit(): pledge = request.vars['pledge'] record = pledge.pledge record.rewards = pledge.pledge.rewardids() form = BOOTUPFORM.factory(db.pledge, Field('rewards', requires=IS_IN_DB(db(db.reward.projectid == pledge.pledge.projectid), db.reward.idreward, '%(description)s', multiple=[1, 9999], error_message="Please select at least one reward")), record=record) """ As we're have to remove the rewardpledges ourselves, the simplest action is to delete all reward pledges then create a new set of rewardpledges for the items that the user has chosen in the form """ if ( form.process().accepted): for reward in pledge.pledge.rewardids(): db((db.rewardpledge.pledgeid == int(pledge.pledge.idpledge)) & ( db.rewardpledge.rewardid == int(reward))).select(db.rewardpledge.ALL).first().rawdelete() for reward in form.vars.rewards: reward = int(reward) dbreward = db(db.reward.idreward == reward).select(db.reward.ALL).first() if int(dbreward.projectid) is int(pledge.pledge.projectid): db.rewardpledge.insert(rewardid=reward, pledgeid=pledge.pledge.idpledge) db(db.pledge.idpledge == pledge.pledge.idpledge).update(description=form.vars.description, value=form.vars.value) redirect(URL('pledge', 'view', args=[pledge.pledge.projectid])) return dict(form=form, projectid=pledge.pledge.projectid)
def create(): project = request.vars['project'].project form = BOOTUPFORM.factory(db.reward) if ( form.process().accepted): db.reward.insert(description=form.vars.description, projectid=project.idproject) redirect(URL('reward', 'view', args=[project.idproject])) return dict(project=project, form=form, projectid=project.idproject)
def make(): pledge = request.vars['pledge'] form = BOOTUPFORM.factory(db.booting) if form.process().accepted: db.booting.insert(openprojectid=pledge.project.idproject, pledgeid=pledge.pledge.idpledge, addressid=form.vars.addressid, cardid=form.vars.cardid, bootingdate=request.now, userid=auth.user_id) redirect(URL('project', 'view', args=[pledge.project.idproject])) return dict(pledge=pledge, form=form)
def create(): project = request.vars['project'].project form = BOOTUPFORM.factory(db.pledge, Field('rewards', requires=IS_IN_DB(db(db.reward.projectid == project.idproject), db.reward.idreward, '%(description)s', multiple=[1, 9999], error_message="Please select at least one reward"))) if ( form.process().accepted): pledgeid = db.pledge.insert(idpledge=None, description=form.vars.description, value=form.vars.value, projectid=project.idproject) """ For each reward that was selected in the form, if the reward project matches ours, create a rewardpledge """ for reward in form.vars.rewards: reward = int(reward) dbreward = db(db.reward.idreward == reward).select(db.reward.ALL).first() if int(dbreward.projectid) is int(project.idproject): db.rewardpledge.insert(rewardid=reward, pledgeid=pledgeid) redirect(URL('pledge', 'view', args=[project.idproject])) return dict(project=project, form=form, projectid=project.idproject)