예제 #1
0
def edit(request, app_id):

    user = request.user
    app = Application.objects.get(pk=app_id)

    if app.user == user:

        form = ApplicationForm(request.POST or None, instance=app)

        if request.method == 'POST':

            if form.is_valid():

                obj = form.save(commit=False)

                obj.save()

                return HttpResponseRedirect('/tracker/user/{0}/'.format(user.username))

            else:

                print form.errors

        else:

            form = ApplicationForm(instance=app)

    else:
        return HttpResponse('User mismatch, permission denied.')

    content = { 'form': form, 'app': app }

    return render(request, 'tracker/edit.html', content)
예제 #2
0
파일: app.py 프로젝트: chakkakuru/instacart
def apply():
  if session.get('workflow_state') == 'applied':
    return redirect(url_for('thanks'))
  form = ApplicationForm(request.form)

  if request.method == 'POST' and form.validate():
    now =  datetime.now()
    args = [form.first_name.data, form.last_name.data, form.region.data,
            form.email.data, form.phone.data, form.phone_type.data,
            form.reason.data, form.over_21.data, now, now]
    try:
      if session.get('useremail'):
        args.append(session['useremail'])
        write_to_db(UPDATE_APPLICATION_DETAILS, args)
      else:
        # New application
        write_to_db(SAVE_APPLICATION_QUERY, args)
        session['useremail'] = form.email.data
        session['workflow_state'] = 'draft'
        session['username'] = form.first_name.data + ' ' + form.last_name.data
      return redirect(url_for('background_check'))
    except sqlite3.IntegrityError as error:
      if error.message == 'UNIQUE constraint failed: applicants.phone':
        form.phone.errors.append('Phone number already taken')
      if error.message == 'UNIQUE constraint failed: applicants.email':
        form.email.errors.append('Email already taken')        

  
  if session.get('workflow_state') == 'draft':
    application = query_db(GET_APPLICATION_QUERY, [session.get('useremail')])
    form = ApplicationForm(data=application)

  return render_template('application.html', form = form)
예제 #3
0
def register_application():
    application_form = ApplicationForm(meta={'csrf': False})

    if application_form.validate_on_submit():
        car_brand = request.form['car_brand']
        car_model = request.form['car_model']
        name = request.form['name']
        last_name = request.form['last_name']
        email = request.form['email']
        tel = request.form['tel']

        try:
            application = Application(name=name, last_name=last_name, email=email, tel=tel, car_brand_id=car_brand,
                                      car_model_id=car_model)
            db.session.add(application)
            db.session.commit()

            # !!!
            # Uncomment it if you want to use Mail
            # !!!

            # track_number = application.unique_track_number
            # send_application_registered_msg(name, email, track_number)

            return jsonify({'success': 'Ваша заявка была успешно подана!'})
        except Exception as e:
            return jsonify({'errors': f'Что-то пошло не так, попробуйте снова! {e}'})

    return jsonify({'errors': application_form.errors})
예제 #4
0
파일: views.py 프로젝트: frontc/Effect_PM
def setting_application():
    # 表格信息区
    applications = db.engine.execute(SQL['APPLICATION_INFO'])
    application_choices = [(p.id, p.application_name) for p in Application.query.order_by('id')]
    user_choices = [(p.id, p.user_name) for p in User.query.filter(User.enable == 1).order_by('id')]
    status_choices = APPLICATION_STATUS
    # 增加项目区
    add_form = ApplicationForm()
    add_form.product_manger_id.choices = user_choices
    if add_form.validate_on_submit():
        if g.user.role == 0:
            try:
                new_application = Application(add_form.application_name.data, add_form.product_manger_id.data,
                                              add_form.current_version.data, add_form.status.data)
                db.session.add(new_application)
                db.session.commit()
                log('application', '增加系统', new_application.id, new_application.application_name, '成功')
                flash("系统添加成功!")
            except Exception, e:
                flash("无法添加系统!")
                print Exception, e
                return render_template('setting-application.html', data=applications, user_choices=user_choices,
                                       status_choices=status_choices, add_form=add_form,
                                       application_choices=application_choices, atr='show')
        else:
            flash("无权限操作!")
예제 #5
0
파일: views.py 프로젝트: felixo/fchild
def addAplication(request):
    if request.method == 'POST':
        form = ApplicationForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('getbills:thankyou'))
    else:
        form = ApplicationForm()
    return render(request, 'getbills/index.html', {'form': form})
예제 #6
0
파일: views.py 프로젝트: burk/helgapp
def apply(request):
    if request.method == 'POST':
        form = ApplicationForm(request.POST)
        if form.is_valid():
            application = form.save(commit=False)
            application.user = request.user
            application.save()
            return HttpResponseRedirect(reverse('applications'))
    else:
        form = ApplicationForm()
    return render(request, 'sok/apply.html', {'form': form})
예제 #7
0
def register(request):
    if request.method == 'POST':
        form = ApplicationForm(request.POST)

        if form.is_valid():
            new_application = form.save()

            return render(request, 'thankyou.html')            
    else:
        form = ApplicationForm()

    return render(request, 'register.html', {'form': form, 'now' : datetime.now(), 'close' : datetime(2013, 9, 16)})
예제 #8
0
def TutorApplication(request, template = 'tutors/tutor_application.html'):
    if not settings.OPEN_SIGNUP:
        return HttpResponseRedirect('/')

    if request.method == 'POST':
        user_creation_form = EmailUserCreationForm(request.POST)
        profile_creation_form = ApplicationForm(request.POST)

        if user_creation_form.is_valid() and profile_creation_form.is_valid():
            # Create the user
            user_data = user_creation_form.cleaned_data
            user = create_user(user_data[ 'email' ], user_data[ 'password1' ])

            try:
                tutors_group = Group.objects.get(name = 'Tutors')
            except Group.DoesNotExist:
                tutors_group = Group.objects.create(name = 'Tutors')

            user.is_staff = False
            user.groups.add(tutors_group)

            profile_data = profile_creation_form.cleaned_data
            user.first_name = profile_data[ 'first_name' ][ 0 ].upper() + profile_data[ 'first_name' ][ 1: ].lower()
            user.last_name = profile_data[ 'last_name' ][ 0 ].upper() + profile_data[ 'last_name' ][ 1: ].lower()
            user.save()

            # Fill the tutor profile
            tutor = Tutor.objects.get(auth=user)
            tutor.name = user.get_full_name()
            tutor.email = user.email
            tutor.phone = profile_data[ 'phone' ]
            tutor.qualifications = profile_data[ 'qualifications' ]
            tutor.rate = profile_data[ 'rate' ]

            for course in profile_data[ 'taught_courses' ]:
                tutor.taught_courses.add(course)
            tutor.save()

            messages.add_message(request, messages.INFO,
                                 'Your application has been successfully received and is pending approval. Thank you '
                                 'for applying for Skule Tutors.')
            return HttpResponseRedirect('/')
    else:
        user_creation_form = EmailUserCreationForm()
        profile_creation_form = ApplicationForm()

    return render_to_response(template,
                              dict(user_creation_form = user_creation_form,
                                   profile_creation_form = profile_creation_form),
                              context_instance = RequestContext(request))
예제 #9
0
def __save_record(request):
    # create a new one
    form = ApplicationForm(request.POST)
    if form.is_valid():
        user = request.user
        application = form.save(commit=False)
        application.user = user
        if not application.date:
            application.date = datetime.date.today()
        application.save()
        app_list = JobApplication.objects.filter(user=user)
        return render(request, 'applications/applications.html', {'app_list': app_list})
    else:
        return render(request, 'applications/new_record.html', {'form': form})
예제 #10
0
def application_form(request, application_id):
    application = get_object_or_404(Application, project__owner=request.user, pk=application_id)
    context = {}
    if request.method == "POST":
        form = ApplicationForm(application.project, request.POST, instance=application, prefix='app_%d_' % application.id)
        if form.is_valid():
            application = form.save()
            context['saved'] = True
            form = ApplicationForm(application.project, instance=application, prefix='app_%d_' % application.id)
    else:
        form = ApplicationForm(application.project, instance=application, prefix='app_%d_' % application.id)
    context.update({'application_form': form,
                    'application': application})
    return render_response(request, 'application_form.html', context)
예제 #11
0
def return_loan_application():
    form = ApplicationForm()
    message = ''
    if form.validate_on_submit():
        age = form.age.data
        occupation = form.occupation.data

        credit = form.grade.data
        grade = convert_credit_grade(credit)
        Years_At_present_Employment = form.Years_At_present_Employment.data

        expenses = form.expenses.data
        income = form.income.data
        dti = round((expenses / (income / 12) * 100), 2)

        Delinquency = convert_to_binary(form.Delinquency.data)
        Collections = convert_to_binary(form.Collections.data)
        Derogatory = convert_to_binary(form.Derogatory.data)
        Housing = form.Housing.data

        application_data = [[grade, dti, Delinquency, Collections, Derogatory]]

        probabs_result = tfidf_model.predict_proba(application_data)

        default_chance = probabs_result[1][0][1]

        print('Chance of default: {}'.format(default_chance * 100))

        if default_chance > .3:
            message = 'However you have been rejected :('
            approval = 'rejected'
        else:
            message = 'You have been accepted! :)'
            approval = 'accepted'

        insert_query = "INSERT INTO loan_history VALUES(DEFAULT, {}, '{}', {}, '{}', '{}', '{}', '{}')".format(
            age, occupation, Years_At_present_Employment, income, Housing,
            credit, approval)

        # print(insert_query)

        cur.execute(insert_query)
        conn.commit()

        return render_template('application_complete.html', message=message)

    return render_template('loan_application.html', form=form)
예제 #12
0
	def apply():
		form = ApplicationForm()
		if form.validate_on_submit():
			file = request.files['resume']
			if file and allowed_file(file.filename):
				filename = secure_filename(file.filename)
				file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
				new_applicant = Application()
				form.populate_obj(new_applicant)
				new_applicant.resume = filename
				db.session.add(new_applicant)
				db.session.commit()
				return "Thanks for applying!"
			else:
				flash("Invalid file extension")
				return render_template('application.html', form=form)		
		return render_template('application.html', form=form)
예제 #13
0
def save_applications(nickname, jobkey):
    print "====== got into save_applications jobkey: ", jobkey
    set_upload_dir(nickname)
    form = ApplicationForm()

    # get the job data from the database or server
    job_data = Position.query.filter_by(jobkey=jobkey).first();
    if job_data is None:
        getJob = ProcessJobSearch()
        job = getJob.search_by_jobkeys(jobkey)
        job_data = job[0]
        print "title: %s, jobkey: %s, company: %s" % (job_data['jobtitle'],
                                                      job_data['jobkey'], job_data['company'])
    if request.method == 'POST' and form.validate_on_submit():
        position =  Position.query.filter_by(jobkey=jobkey).first();
        if position is None:
            print " ---- inserting into position table ----"
            position = insert_into_position_table(job_data)
        apply_date = form.apply_date.data
        dt = datetime.strptime(apply_date, "%m/%d/%Y" )
        resume = form.resume_version.data
        cv = form.cv_version.data
        username = form.username_on_website.data
        password = form.password_on_website.data

        #insert into Application table
        user = User.query.filter_by(nickname=nickname).first()
        if user is not None:
            application = Application.query.filter_by(id=user.id, jobkey=position.jobkey).first()
            if application is None:

                print("commit to application table")
                application = Application(id=user.id, jobkey=position.jobkey,
                                          apply_date=dt, resume=resume, cv=cv)
                db.session.add(application)
                db.session.commit()
        else:
            print(" We couldn't save the position.")
        return redirect(url_for('list_applications', nickname=nickname))

    print "documents available: ", os.listdir(g.user.upload_dir), " path is: ", g.user.upload_dir
    documents = os.listdir(g.user.upload_dir)
    return render_template('save_applications.html',
                           job=job_data,
                           user=g.user, form=form,
                           documents=documents)
예제 #14
0
    def index():
        form = ApplicationForm()

        if form.validate_on_submit():
            if form.squirrel.data:
                # ANTI SPAM YO
                app.logger.info('SECRET SQUIRREL')
                return redirect(url_for('index'))

            form_data = "name: {}\nemail: {}\nphone: {}\n\n".format(
                form.name.data, form.email.data, form.phone.data)
            app.logger.info(form_data)

            # send the email
            email.send(form_data)

            flash(app.config['THANKS_FLASH'])

            return redirect(url_for('index'))

        return render_template('index.jade', form=form)
예제 #15
0
def edit(request, app_id):

    user = request.user
    app = Application.objects.get(pk=app_id)

    if app.user == user:

        form = ApplicationForm(request.POST or None, instance=app)

        if request.method == 'POST':

            if form.is_valid():

                obj = form.save(commit=False)

                obj.save()

                return HttpResponseRedirect('/tracker/user/{0}/'.format(
                    user.username))

            else:

                print form.errors

        else:

            form = ApplicationForm(instance=app)

    else:
        return HttpResponse('User mismatch, permission denied.')

    content = {'form': form, 'app': app}

    return render(request, 'tracker/edit.html', content)
예제 #16
0
def apply():
    if current_user.is_authenticated:
        if current_user.type == 'admin':
            return redirect(url_for('main.index'))
        return redirect(url_for('student.studentIndex'))
    form = ApplicationForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            user = User.query.filter_by(email=form.email.data).first()
            if user is not None:
                flash('There is already an account with that email.',
                      'warning')
                return redirect(url_for('student.apply'))
            stu = Student.query.filter_by(email=form.email.data).first()
            if stu is not None:
                flash('There is already a student with that email.', 'warning')
                return redirect(url_for('student.apply'))
            applicant = Applicant.query.filter_by(
                email=form.email.data).first()
            if applicant is not None:
                flash('You have already applied with that email.', 'warning')
                return redirect(url_for('student.apply'))
            if form.document.data:
                document = save_doc(form.document.data)
            student = Applicant(name=form.name.data,
                                birthday=form.birthday.data,
                                phone=form.phone.data,
                                address=form.address.data,
                                email=form.email.data,
                                status=False,
                                city=form.city.data,
                                country=form.country.data,
                                program=form.program.data,
                                document=document)
            db.session.add(student)
            db.session.commit()
            flash('You application has been received!', 'success')
            return redirect(url_for('student.studentlogin'))
    return render_template('apply.html', form=form)
예제 #17
0
파일: views.py 프로젝트: umelly/tzdeply
def application_edit(app_id):

    from forms import ApplicationForm

    ac = Application.query.get_u_or_404(app_id)
    servers = Server.query.all()
    form = ApplicationForm(
        formdata=request.form, 
        obj=ac)

    if form.validate_on_submit():
        form.servers.data = [ 
            Server.query.get_or_404(x) for x in form.servers.data]
        form.populate_obj(ac)

        db.session.commit()
        return redirect(url_for(".application"))

    return render_template("app_edit.html",
        form=form,
        servers=servers,
        ac=ac)
예제 #18
0
def addapp(request):

    if request.method == 'POST':

        app = Application(user=request.user)

        form = ApplicationForm(request.POST, instance=app)

        if form.is_valid():
            form.save(commit=True)

            return HttpResponseRedirect('/tracker/user/{0}/'.format(request.user.username))

        else:
            print form.errors

    else:

        form = ApplicationForm()

    content = { 'form': form }

    return render(request, 'tracker/addapp.html', content)
예제 #19
0
    def index():
        form = ApplicationForm()

        if form.validate_on_submit():
            if form.squirrel.data:
                # ANTI SPAM YO
                app.logger.info('SECRET SQUIRREL')
                return redirect(url_for('index'))

            form_data = "name: {}\nemail: {}\nphone: {}\n\n".format(
                    form.name.data,
                    form.email.data,
                    form.phone.data
                    )
            app.logger.info(form_data)

            # send the email
            email.send(form_data)

            flash(app.config['THANKS_FLASH'])

            return redirect(url_for('index'))

        return render_template('index.jade', form=form)
예제 #20
0
파일: views.py 프로젝트: umelly/tzdeply
def application_add():

    from forms import ApplicationForm

    servers = Server.query.all()
    form = ApplicationForm(request.form)
    iservers = request.form.getlist('servers')
    iservers = Server.query.filter(
        Server.id.in_(iservers)).all()

    if form.validate_on_submit():

        s = Application()
        form.servers.data = [ 
            Server.query.get_or_404(x) for x in form.servers.data]
        form.populate_obj(s)
        db.session.add(s)
        db.session.commit()
        return redirect(url_for(".application"))

    return render_template("app_add.html",
        form=form,
        servers=servers,
        iservers=iservers)
예제 #21
0
def web_hook_application_form():
    """ Web hook for incoming application forms.
    """
    request_id = log_request()
    log.info(u"request_id={} Received form: {}".format(request_id, request.form))
    data = request.form.to_dict()
    log.debug(u"request_id={} Data: {}".format(request_id, data))
    form = ApplicationForm(data=data)
    d = {
        'status': 'ok',
        'form': request.form,
        'data': data,
    }
    slack.post_form_to_webhook(form)
    log.debug(u"request_id={} d: {}".format(request_id, json.dumps(d)))
    return jsonify(**d)
예제 #22
0
def application_form(request, application_id):
    application = get_object_or_404(Application,
                                    project__owner=request.user,
                                    pk=application_id)
    context = {}
    if request.method == "POST":
        form = ApplicationForm(application.project,
                               request.POST,
                               instance=application,
                               prefix='app_%d_' % application.id)
        if form.is_valid():
            application = form.save()
            context['saved'] = True
            form = ApplicationForm(application.project,
                                   instance=application,
                                   prefix='app_%d_' % application.id)
    else:
        form = ApplicationForm(application.project,
                               instance=application,
                               prefix='app_%d_' % application.id)
    context.update({'application_form': form, 'application': application})
    return render_response(request, 'application_form.html', context)
예제 #23
0
def addapp(request):

    if request.method == 'POST':

        app = Application(user=request.user)

        form = ApplicationForm(request.POST, instance=app)

        if form.is_valid():
            form.save(commit=True)

            return HttpResponseRedirect('/tracker/user/{0}/'.format(
                request.user.username))

        else:
            print form.errors

    else:

        form = ApplicationForm()

    content = {'form': form}

    return render(request, 'tracker/addapp.html', content)
예제 #24
0
def add_application(request):
  context = {}

  # A HTTP POST?
  size_error=False #boolean to indicate if the exceed max size
  has_uploaded=True #boolean to indicate if the resume is uploaded or not
  if request.method == 'POST':
    form = ApplicationForm(request.POST, request.FILES)
    
    #print request.FILES
    form.fields['netID'].required = True
    form.fields['resume'].required = True
    form.fields['project_multiselect'].required=False
    form.fields['role_multiselect'].required=False
    print (form.is_valid())
    # Have we been provided with a valid form?
    if form.is_valid():
        #first create a new role in the opening database
        #and then add a record to the relation
        application=Application()
        application.netID=form.cleaned_data['netID']
      
        if 'resume' in request.FILES:
          if request.FILES['resume'].size < MAX_UPLOAD_SIZE:
            application.resume = request.FILES['resume']
            application.save()
          else:
            print "The size is too big!"
            size_error=True
        else:
          has_uploaded=False  #boolean to indicate if the resume is uploaded or not

        for role_id in form.cleaned_data['role_multiselect']:
          role=Opening.objects.get(pk=role_id)
          if role:
            application.roles.add(role)
          else:
              print "application_form_handler: role specified by primary key does not exist"
        for project_id in form.cleaned_data['project_multiselect']:
          project=Posting.objects.get(pk=project_id)
          if project:
            application.projects.add(project)
          else:
              print "application_form_handler: project specified by primary key does not exist"

        application.save()

        # The user will be shown the homepage.
        #return HttpResponseRedirect("https://docs.google.com/forms/d/1z_U_r4fsO2PAWWIBkzUQ50Y92RjJwMxvXeMfGy4UO6Y/viewform?edit_requested=true") #add some pop up window for confirmation of save 
    	return HttpResponseRedirect("http://goo.gl/forms/W3J0WYUxEM")
    else:
        # The supplied form contained errors - just print them to the terminal and redirect to application site 
        print ('error is: %s' %form.errors)
        #return HttpResponseRedirect("/application/add_application/")

  else:
      # If the request was not a POST, display the form to enter details.
    form = ApplicationForm()
    all_role_choices = [(role.pk, role.title) for role in Opening.objects.all()]
    all_projects_choices = [(project.pk, project.name) for project in Posting.objects.filter(posting_type="project", published=True)]
    
    form.fields['role_multiselect'].choices = all_role_choices
    form.fields['project_multiselect'].choices = all_projects_choices

  context = {
      'form': form,
      'projects': Posting.objects.filter(posting_type='project', published=True).order_by('-rank'),
      'role_types': Posting.objects.filter(posting_type='role_type', published=True)
  }

  # Render the form with error messages (if any).
  return render(request, 'add_application.html', context)
예제 #25
0
def ajax_add_application(request): #TODO: ajax prefix not needed
    form = ApplicationForm(request.POST, request.project)
    if form.is_valid():
        form.save()
        return {}
    return HttpResponse(unicode(form.errors))
예제 #26
0
def index():
    application_form = ApplicationForm(meta={'csrf': False})

    return render_template('index.html', application_form=application_form)