Example #1
0
    def describe_funder(self, request, id_=None):
        '''Import information about a funder into the index.'''
        
        
        tmpl = util.clean_list(request.values.getlist('useful_links[]'))
        useful_links = []
        for link in tmpl:
            useful_links.append(util.prep_link(link))
            
        if not id_:
            id_ = util.slug_id(request.values['name'])

        record = {
            "id": id_,
            "name": request.values['name'], # guaranteed to have 'name'
            "homepage": util.prep_link(request.values.get("homepage",'')),
            "description": request.values.get("description",''),
            "interested_in": request.values.get("interested_in",''),
            "policies": request.values.get("policies",''),
            "useful_links": useful_links,
            "tags": util.clean_list(request.values.get("tags",'').split(",")), 
            "created": datetime.now().isoformat(),
            "modified": datetime.now().isoformat(),
            "owner": self.owner.id,
            "license": CROWDSOURCE_CONTRIB_LICENSE,
            "origin": "Crowdsourced",
            "origin_method": "crowdsourced"
        }
        
        fundfind.dao.Funder.upsert(record)
        return id_
Example #2
0
    def share_fundopp(self, request, id_=None):
        '''Import information about a funding opportunity into the index.'''
        
        
        tmpl = util.clean_list(request.values.getlist('useful_links[]'))
        useful_links = []
        for link in tmpl:
            useful_links.append(util.prep_link(link))
        
        if not id_:
            id_ = util.slug_id(request.values["title"])

        record = {
            "funder": request.values.get("funder", ''),
            "title": request.values["title"],
            "residency": request.values.get("residency"),
            "gender": request.values.get("gender"),
            "id": id_,
            "url": util.prep_link(request.values.get("url",'')),
            "description": Markup.escape(request.values.get("more_info",'')),
            "issue_date": request.values.get('issue_date',None),
            "closing_date": request.values.get('closing_date',None),
            "funds": request.values.get('funds',''),
            "funds_exactly_or_upto": request.values.get('funds_exactly_or_upto',''),
            "useful_links": useful_links,
            "tags": util.clean_list(request.values.get("tags",'').split(",")), 
            "subjects": util.clean_list(request.values.get("subjects",'').split(",")),
            "created": datetime.now().isoformat(),
            "modified": datetime.now().isoformat(),
            "owner": self.owner.id,
            "license": CROWDSOURCE_CONTRIB_LICENSE,
            "origin": "Crowdsourced",
            "origin_method": "crowdsourced"
        }

        # cause ElasticSearch exceptions if null or empty string
        # so just remove them from the document
        if not record['issue_date']: del record['issue_date']
        if not record['closing_date']: del record['closing_date']
        
        fundfind.dao.FundingOpp.upsert(record)
        return id_
Example #3
0
def register():
    # TODO: re-enable csrf
    form = RegisterForm(request.form, csrf_enabled=False)
    if request.method == 'POST' and form.validate():
        api_key = str(uuid.uuid4())
        account = dao.Account(
            id=form.username.data,
            email=form.email.data,
            api_key=api_key,
            country=form.country.data,
            organisation=form.organisation.data,
            department=form.department.data,
            research_group=form.research_group.data,
            interests=util.clean_list( form.interests.data.split(',') )
        )
        account.set_password(form.password.data)
        account.save()
        login_user(account, remember=True)
        flash('Thanks for signing-up', 'success')
        return redirect(url_for('home'))
    if request.method == 'POST' and not form.validate():
        flash('Please correct the errors', 'error')
    return render_template('account/register.html', form=form)