def _slide_preview(slug): """ Preview a slide outside of the stack. """ from models import SlideSequence context = make_context() sequence = SlideSequence.select() for slide in sequence: if slide.slide.slug == slug: context['in_sequence'] = True previous_slide_order = slide.order - 1 next_slide_order = slide.order + 1 break try: context['previous_slide'] = SlideSequence.get(SlideSequence.order == previous_slide_order).slide.slug except: pass try: context['next_slide'] = SlideSequence.get(SlideSequence.order == next_slide_order).slide.slug except: pass context['body'] = _slide(slug).data.decode('utf-8') context['slug'] = slug return render_template('slide_preview.html', **context)
def _slide_preview(slug): """ Preview a slide outside of the stack. """ from models import SlideSequence context = make_context() sequence = SlideSequence.select() for slide in sequence: if slide.slide.slug == slug: context['in_sequence'] = True previous_slide_order = slide.order - 1 next_slide_order = slide.order + 1 break try: context['previous_slide'] = SlideSequence.get( SlideSequence.order == previous_slide_order).slide.slug except: pass try: context['next_slide'] = SlideSequence.get( SlideSequence.order == next_slide_order).slide.slug except: pass context['body'] = _slide(slug).data.decode('utf-8') context['slug'] = slug return render_template('slide_preview.html', **context)
def save_stack(): """ Save new stack sequence. """ from flask import request data = request.json SlideSequence.delete().execute() # Rebuild sequence table for i, row in enumerate(data[0]): SlideSequence.create(order=i, slide=row['slide']) stack.deploy() return "Saved sequence"
def _stack(): """ Administer a stack of slides. """ context = make_context(asset_depth=1) sequence = SlideSequence.select() sequence_dicts = sequence.dicts() time = 0 for slide in sequence: time += slide.slide.time_on_screen for slide_dict in sequence_dicts: for slide in sequence: if slide.slide.slug == slide_dict['slide']: slide_dict['name'] = slide.slide.name slide_dict['time_on_screen'] = slide.slide.time_on_screen if slide_dict['slide'].startswith('tumblr'): slide_dict['news_item'] = True context.update({ 'sequence': sequence_dicts, 'slides': Slide.select().dicts(), 'graphics': Slide.select().where(fn.Lower(fn.Substr(Slide.slug, 1, 6)) != 'tumblr').order_by(Slide.slug).dicts(), 'news': Slide.select().where(fn.Lower(fn.Substr(Slide.slug, 1, 6)) == 'tumblr').order_by(Slide.slug.desc()).dicts(), 'time': time, }) return render_template('admin/stack.html', **context)
def _stack_json(): """ Serve up the current slide stack. """ from models import SlideSequence data = SlideSequence.stack() # There is one state slug to manipulate in the stack, but the client # should see two for i, d in enumerate(data): if d['slug'] == 'state-house-results': one = copy(d) one['slug'] = 'state-house-results-1' two = copy(d) two['slug'] = 'state-house-results-2' data[i:i + 1] = [ one, two ] break js = json.dumps(data) return js, 200, { 'Content-Type': 'application/javascript' }
def _stack_json(): """ Serve up the current slide stack. """ from models import SlideSequence data = SlideSequence.stack() # There is one state slug to manipulate in the stack, but the client # should see two for i, d in enumerate(data): if d['slug'] == 'state-house-results': one = copy(d) one['slug'] = 'state-house-results-1' two = copy(d) two['slug'] = 'state-house-results-2' data[i:i + 1] = [one, two] break js = json.dumps(data) return js, 200, {'Content-Type': 'application/javascript'}
def _stack(): """ Administer a stack of slides. """ context = make_context(asset_depth=1) sequence = SlideSequence.select() sequence_dicts = sequence.dicts() time = 0 for slide in sequence: time += slide.slide.time_on_screen for slide_dict in sequence_dicts: for slide in sequence: if slide.slide.slug == slide_dict['slide']: slide_dict['name'] = slide.slide.name slide_dict['time_on_screen'] = slide.slide.time_on_screen if slide_dict['slide'].startswith('tumblr'): slide_dict['news_item'] = True context.update({ 'sequence': sequence_dicts, 'slides': Slide.select().dicts(), 'graphics': Slide.select().where( fn.Lower(fn.Substr(Slide.slug, 1, 6)) != 'tumblr').order_by( Slide.slug).dicts(), 'news': Slide.select().where( fn.Lower(fn.Substr(Slide.slug, 1, 6)) == 'tumblr').order_by( Slide.slug.desc()).dicts(), 'time': time, }) return render_template('admin/stack.html', **context)