Exemplo n.º 1
0
def create_job(user_id):
    """Used by users to create job posts"""
    if not g.user:
        flash("Access unauthorized.", "danger")
        return redirect("/")
    if g.user and session[CURR_USER_KEY] == user_id:
        genres = Genre.query.all()
        regions = Region.query.all()
        # list of tuples for selectfield
        region_list = [(i.id, i.city) for i in regions]
        genre_list = [(j.id, j.genre) for j in genres]
        form = JobForm()
        #passing selectfield choice into the form
        form.region_id.choices = region_list
        form.genre_id.choices = genre_list
        if form.validate_on_submit():
            job = JobPost(title=form.title.data,
                          description=form.description.data,
                          pay=form.pay.data,
                          date=form.date.data,
                          region_id=form.region_id.data,
                          user_id=user_id,
                          genre_id=form.genre_id.data)

            db.session.add(job)
            db.session.commit()
            return redirect(f"/users/{user_id}")
        return render_template("jobs/job-form.html", form=form)
    else:
        flash("Access unauthorized.", "danger")
        return redirect("/")
Exemplo n.º 2
0
def add_job():
    form = JobForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        job = Jobs()
        job.job = form.title.data
        job.team_leader = form.leader_id.data
        job.work_size = form.work_size.data
        job.collaborators = form.collaborators.data
        job.is_finished = form.is_finished.data
        job.creator = current_user.id

        category_id = form.category.data
        category = session.query(CategoryJob).filter(
            CategoryJob.id == category_id).first()
        job.categories.append(category)
        session.commit()

        try:
            current_user.jobs.append(job)
        except sqlalchemy.orm.exc.DetachedInstanceError:
            pass
        except sqlalchemy.exc.InvalidRequestError:
            pass
        session.merge(current_user)
        session.commit()
        return redirect('/')
    return render_template('add_job.html', title='Adding a job', form=form)
Exemplo n.º 3
0
def new_job():
    form = JobForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        job = Jobs()
        job.job = form.title.data
        job.team_leader = form.leader_id.data
        job.work_size = form.work_size.data
        job.collaborators = form.collaborators.data
        job.is_finished = form.is_finished.data
        job.creator = current_user.id

        category_id = form.category.data
        category = session.query(CategoryJob).filter(
            CategoryJob.id == category_id).first()
        job.categories.append(category)
        session.commit()

        try:
            current_user.jobs.append(job)
        except:
            pass
        session.merge(current_user)
        session.commit()
        return redirect('/')
    return render_template('new_job.html', title='New job', form=form)
Exemplo n.º 4
0
def create():
    form = JobForm()

    print(form.validate_on_submit(), '---------------1------------')

    if form.validate_on_submit():
        company_id = current_user.id
        print('职位视图 调用--------')

        form.create_job(company_id)
        flash('职位创建成功', 'success')
        return redirect_job_index()

    print(' 职位视图结束-------')
    return render_template('job/create.html',
                           form=form,
                           active='manage',
                           panel='create')
Exemplo n.º 5
0
def index():
    form = JobForm()
    if request.method == "POST" and form.validate_on_submit():
        obj = create_request(**form.data)
        flash('Application has been added successfully')
        if obj:
            return redirect(url_for('content_list'))
    return render_template('index.html', **locals())

    print "+++++", form.errors
Exemplo n.º 6
0
def edit(job_id):
    job_obj = Job.query.get_or_404(job_id)
    if job_obj.company_id != current_user.id and not current_user.is_admin():
        abort(404)
    form = JobForm(obj=job_obj)
    if form.validate_on_submit():
        form.update_job(job_obj)
        flash('职位更新成功', 'success')
        return redirect_job_index()
    return render_template('job/edit.html', form=form, job_id=job_id)
Exemplo n.º 7
0
def edit_job(id):
    form = JobForm()
    if request.method == "GET":
        session = db_session.create_session()
        if current_user.id == 1:
            job = session.query(Jobs).filter(Jobs.id == id).first()
        else:
            job = session.query(Jobs).filter(
                Jobs.id == id, Jobs.creator == current_user.id).first()
        if job:
            form.title.data = job.job
            form.leader_id.data = job.team_leader
            form.work_size.data = job.work_size
            form.collaborators.data = job.collaborators
            form.is_finished.data = job.is_finished
            form.category.data = job.categories[0].id
        else:
            abort(404)
    if form.validate_on_submit():
        session = db_session.create_session()
        if current_user.id == 1:
            job = session.query(Jobs).filter(Jobs.id == id).first()
        else:
            job = session.query(Jobs).filter(
                Jobs.id == id, Jobs.creator == current_user.id).first()
        if job:
            job.job = form.title.data
            job.team_leader = form.leader_id.data
            job.work_size = form.work_size.data
            job.collaborators = form.collaborators.data
            job.is_finished = form.is_finished.data

            category_id = form.category.data
            category = session.query(CategoryJob).filter(
                CategoryJob.id == category_id).first()
            job.categories[0] = category
            session.commit()

            try:
                current_user.jobs.append(job)
            except sqlalchemy.orm.exc.DetachedInstanceError:
                pass
            except sqlalchemy.exc.InvalidRequestError:
                pass

            session.commit()
            return redirect('/')
        else:
            abort(404)
    return render_template('add_job.html', title='Job edit', form=form)
Exemplo n.º 8
0
def new_job():
    form = JobForm()
    if form.validate_on_submit():
        session = db.create_session()
        job = models.jobs.Jobs(job=form.job.data,
                               work_size=form.work_size.data,
                               start_date=form.start_date.data,
                               end_date=form.end_date.data,
                               collaborators=form.collaborators.data,
                               is_finished=form.is_finished.data,
                               team_leader=form.team_leader.data,
                               hazard_category=form.hazard_category.data)
        session.add(job)
        session.commit()
        return redirect('/jobs')
    return render_template('new_job.html',
                           title='New job',
                           form=form,
                           current_user=current_user)
Exemplo n.º 9
0
def edit_job(id):
    form = JobForm()
    if request.method == "GET":
        session = db.create_session()
        job = session.query(models.jobs.Jobs).filter(
            models.jobs.Jobs.id == id,
            ((models.jobs.Jobs.user == current_user) |
             (models.jobs.Jobs.team_leader == 1))).first()
        if job:
            form.job.data = job.job
            form.work_size.data = job.work_size
            form.start_date.data = job.start_date
            form.end_date.data = job.end_date
            form.collaborators.data = job.collaborators
            form.is_finished.data = job.is_finished
            form.team_leader.data = job.team_leader
            form.hazard_category.data = job.hazard_category
        else:
            abort(404)
    if form.validate_on_submit():
        session = db.create_session()
        job = session.query(models.jobs.Jobs).filter(
            models.jobs.Jobs.id == id,
            ((models.jobs.Jobs.user == current_user) |
             (models.jobs.Jobs.team_leader == 1))).first()
        if job:
            job.job = form.job.data
            job.work_size = form.work_size.data
            job.start_date = form.start_date.data
            job.end_date = form.end_date.data
            job.collaborators = form.collaborators.data
            job.is_finished = form.is_finished.data
            job.team_leader = form.team_leader.data
            job.hazard_category = form.hazard_category.data
            session.commit()
            return redirect('/jobs')
        else:
            abort(404)
    return render_template('new_job.html',
                           title='Редактирование новости',
                           form=form)
Exemplo n.º 10
0
def home():
    """Render website's home page."""
    form = JobForm()

    if form.validate_on_submit():
        uniqid = generate_uniqid(10)
        jobdir = app.config['UPLOAD_FOLDER'] + "/" + uniqid + "/"
        os.makedirs(jobdir)

        mp3_filename = secure_filename(form.mp3.data.filename)
        mp3_new_name = jobdir + uniqid + ".mp3"
        form.mp3.data.save(mp3_new_name)
        pic_filename = secure_filename(form.pic.data.filename)
        _, pic_extension = os.path.splitext(pic_filename)
        pic_new_name = jobdir + uniqid + pic_extension
        form.pic.data.save(pic_new_name)
        video_output = jobdir + uniqid + ".mkv"

        task = tasks.make_video.apply_async(
            (uniqid, pic_new_name, mp3_new_name, video_output),
            countdown=app.config['PHOSIC_TASK_DELAY'],
            expires=app.config['PHOSIC_TASK_MAX_EXECUTION_TIME'])

        # Create database item
        job = models.Job(
            uniqid=uniqid,
            task_uuid=task.id,
            email=form.email.data,
            created=datetime.datetime.utcnow(),
            expires=datetime.datetime.utcnow() + datetime.timedelta(
                minutes=app.config["PHOSIC_JOB_EXPIRY_MINUTES"]),
            mp3_name=mp3_filename[:255],
            pic_name=pic_filename[:255],
        )
        db.session.add(job)
        db.session.commit()

        return redirect(url_for('jobs', job_id=job.uniqid))

    return render_template('home.html', form=form)