def create(data, usr): data = data or dict() name = data.get('name') description = data.get('description') if isinstance(description, basestring): description = json.dumps(dict(text=description)) milestones = data.get('milestones', []) timestamp = data.get('date') timestamp /= 1000 date = datetime.utcfromtimestamp(int(timestamp)) amount = data.get('amount') suggested_contribution = data.get('contribution') suggested_contribution_required = data.get('required_contribution') collect_funds_when = data.get('fund_collection') disburse_funds_when = data.get('disburse_funds') meta = dict(amount=amount, collect_funds_when=collect_funds_when, disburse_funds_when=disburse_funds_when) if suggested_contribution: meta['suggested_contribution'] = suggested_contribution meta['suggested_contribution_required'] = suggested_contribution_required c = campaign.create(usr, name, description, end=date, **meta) default_milestone = {'name': 'pi-default-milestone', 'description': 'pi-default-milestone', 'date': date, 'type': 'project'} milestones = sorted(milestones, key=lambda x: x['date']) if disburse_funds_when != 'immediately': milestones.insert(0, default_milestone) g = None for milestone in milestones: g = campaign.add_goal(c, milestone['name'], milestone['description'], milestone['type'], predecessor=g, end=milestone['date']) return c
def create(data, usr): data = data or dict() name = data.get('name') description = data.get('description') if isinstance(description, basestring): description = json.dumps(dict(text=description)) milestones = data.get('milestones', []) timestamp = data.get('date') timestamp /= 1000 date = datetime.utcfromtimestamp(int(timestamp)) amount = data.get('amount') suggested_contribution = data.get('contribution') suggested_contribution_required = data.get('required_contribution') collect_funds_when = data.get('fund_collection') disburse_funds_when = data.get('disburse_funds') meta = dict(amount=amount, collect_funds_when=collect_funds_when, disburse_funds_when=disburse_funds_when) if suggested_contribution: meta['suggested_contribution'] = suggested_contribution meta[ 'suggested_contribution_required'] = suggested_contribution_required c = campaign.create(usr, name, description, end=date, **meta) default_milestone = { 'name': 'pi-default-milestone', 'description': 'pi-default-milestone', 'date': date, 'type': 'project' } milestones = sorted(milestones, key=lambda x: x['date']) if disburse_funds_when != 'immediately': milestones.insert(0, default_milestone) g = None for milestone in milestones: g = campaign.add_goal(c, milestone['name'], milestone['description'], milestone['type'], predecessor=g, end=milestone['date']) return c