def _build_horizontal_slides(photos): slides = set() for photo in photos: slides.add(Slide(photo)) return slides
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)
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
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')
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)