def project_create(request):
  if request.method == 'POST':
    ln_user_id = str(request.user)[3:]
    ln_user = LinkedInUserProfile.objects.get(linkedin_uid = ln_user_id)
    name = request.POST['name']
    skills = extract_skills_from_user_string(request.POST['skills'])
    project = Project(name=name, skills_set=skills, creator = ln_user)
    project.save()

    """ prepare object with connections and skills """
    li = LinkedIn(settings.LINKEDIN_CONSUMER_KEY,\
      settings.LINKEDIN_CONSUMER_SECRET)
    access_token = request.session['access_token']
    connections = li.connections_api.getMyConnections(access_token)
    members = []

    for conn in connections:
      member = Member()
      member.proj = project
      member.linkedin_url = conn.profile_url
      member.pic = conn.picture_url
      member.first_name = conn.firstname
      member.last_name = conn.lastname
      member.info = {}
      member.info['summary'] = conn.summary.lower()
      member.info['specialties'] = conn.specialties.lower()
      members.append(member)
      
    request.session['members_' + str(project.id)] = members

    return redirect('web.views.project', project.id)
  return render_to_response('project/create.html', {}, RequestContext(request))
def project_manager():
    form = request.form
    project_id = form.get('project_id')
    if project_id:
        _project = Project.objects.filter(id=project_id).first()
    else:
        _project = Project()
    _project.name = form.get('name')
    _project.alias = form.get('alias')
    _project.description = form.get('description')
    _project.egg = base64.encodestring(request.files['egg'].stream.read())
    _project.save()
    return redirect(url_for('.project'))
def project_create(request):
  if request.method == 'POST':
    ln_user = get_linkedin_user(request)
    name = request.POST['name']
    #skills = extract_skills_from_user_string(request.POST['skills'])
    #project = Project(name=name, skills_set=skills, creator = ln_user)
    project = Project(name=name, creator = ln_user)
    project.save()

    """ prepare object with connections and skills """
    members = build_member_data(project, request.session['access_token'])
    request.session['members_' + str(project.id)] = members

    return redirect('web.views.project', project.id)
  return render_to_response('project/create.html', {}, RequestContext(request))
def project_create(request):
    if request.method == 'POST':
        ln_user = get_linkedin_user(request)
        name = request.POST['name']
        #skills = extract_skills_from_user_string(request.POST['skills'])
        #project = Project(name=name, skills_set=skills, creator = ln_user)
        project = Project(name=name, creator=ln_user)
        project.save()
        """ prepare object with connections and skills """
        members = build_member_data(project, request.session['access_token'])
        request.session['members_' + str(project.id)] = members

        return redirect('web.views.project', project.id)
    return render_to_response('project/create.html', {},
                              RequestContext(request))
def refresh_project():
    app = current_app._get_current_object()
    spiderdir = app.config.get('SPIDERDIR')
    projects = os.listdir(spiderdir)
    for name in projects:
        _project = Project.objects.filter(name=name).first()

        if not _project:
            _project = Project()
        _project.name = name
        _project.alias = name
        _project.description = ''
        _project.save()
        # spider
        _spiderpath = os.path.join(spiderdir, name)
        scrapyexe = app.config.get('SCRAPY_EXE')
        p = subprocess.Popen([scrapyexe, 'list'],
                             cwd=_spiderpath,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)
        p.wait()
        stdout = p.stdout.readlines()
        spiders = []
        for spider_name in stdout:
            spider_name = spider_name.strip()
            spider = Spider.objects.filter(name=spider_name,
                                           project=_project).first()
            if not spider:
                spider = Spider()
            spider.name = spider_name
            spider.project = _project
            spider.save()
            spiders.append(spider)
        _project.spiders = spiders
        _project.save()
    return redirect(url_for('.project'))