Beispiel #1
0
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
Beispiel #2
0
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