示例#1
0
def _build_horizontal_slides(photos):
    slides = set()

    for photo in photos:
        slides.add(Slide(photo))

    return slides
示例#2
0
def edit_job(slug):
    try:
        j = Job.objects.get(site=g.site.domain, slug=slug)
    except Job.DoesNotExist:
        abort(404)

    if not g.site.domain == g.user:
        abort(403)

    if request.method == "POST":
        j.name = request.form.get("name")
        #j.slug = slugify(j.name)
        j.categories = [
            c.strip() for c in request.form.get("categories").split(",")
        ]
        j.intro = request.form.get("intro")
        j.description = request.form.get("description")
        j.slides = []
        texts = request.form.getlist("text")
        image_urls = request.form.getlist("image_url")
        captions = request.form.getlist("caption")
        caption_links = request.form.getlist("caption_link")
        for text, image_url, caption, caption_link in zip(
                texts, image_urls, captions, caption_links):
            if text or image_url:
                j.slides.append(
                    Slide(text=text,
                          image_url=image_url,
                          caption=caption,
                          caption_link=caption_link))
        j.save()
        return redirect(url_for(".job", slug=j.slug))

    return render_template("edit_job.html", job=j)
示例#3
0
def _build_vertical_slides(photos):
    slides = set()
    idx = 0
    photos = list(photos)
    while idx < len(photos):
        idx2 = idx + 1
        while idx2 < len(photos):
            slides.add(Slide(photo1=photos[idx], photo2=photos[idx2]))
            idx2 += 1
        idx += 1

    return slides
示例#4
0
def new_slide(journey_id):
    journey = Journey.query.filter_by(id=journey_id,
                                      user_id=current_user.id).first()
    if not journey:
        flash(BAD_KITTY, 'danger')
        return redirect(url_for('index'))

    form = NewSlideForm(journey_id=journey_id)
    if form.validate_on_submit():
        slide = Slide()
        slide.create(form.data['title'], form.data['description'], journey_id)
        db.session.add(slide)
        db.session.commit()
        flash('Slide added to journey, you can now add photos to your slide.',
              'success')
        return redirect(url_for('new_photo', slide_id=slide.id))

    flash_errors(form)
    return render_template('new-slide.html', form=form, title='New Slide')
示例#5
0
def new_job():
    if not g.site.domain == g.user:
        abort(403)

    j = Job()
    if request.method == "POST":
        portfolio = Portfolio.objects.get(site=g.site.domain)
        job_name = request.form.get("name")
        slugs = [__j.slug for __j in Job.objects.filter(site=g.site.domain)]
        counter = 1
        slug = slugify(job_name)
        __slug = slug
        while __slug in slugs:
            counter += 1
            __slug = "%s_%d" % (slug, counter)
        j.slug = __slug
        j.name = job_name
        j.site = g.site.domain
        j.categories = [
            c.strip() for c in request.form.get("categories").split(",")
        ]
        j.intro = request.form.get("intro")
        j.description = request.form.get("description")
        j.slides = []
        texts = request.form.getlist("text")
        image_urls = request.form.getlist("image_url")
        captions = request.form.getlist("caption")
        caption_links = request.form.getlist("caption_link")
        for text, image_url, caption, caption_link in zip(
                texts, image_urls, captions, caption_links):
            if text or image_url:
                j.slides.append(
                    Slide(text=text,
                          image_url=image_url,
                          caption=caption,
                          caption_link=caption_link))
        j.save()
        portfolio.jobs.append(j)
        portfolio.save()
        return redirect(url_for(".job", slug=j.slug))
    return render_template("edit_job.html", job=j)