def manage_stream(request, username, streamname): if request.user.username == username: stream = get_object_or_404(lifestream.models.Stream, user=request.user, name=streamname) stream_config = StreamConfig(stream.config) feed_rows = stream.feed_set.all() stream_config.ensureFeedsConfig(feed_rows) feed_id_to_feed = {} for row in feed_rows: feed_id_to_feed[row.pk] = row feeds = [] for feed in stream_config.config['feeds']: feed_row = feed_id_to_feed[feed['url_hash']] feeds.append({'url': feed_row.url, 'title': feed_row.title, 'pk': feed_row.pk, 'entries_visible_default': feed['entries_visible_default']}) raw_entries = (lifestream.models.Entry.objects.order_by('-last_published_date') .filter(feed__user=request.user, feed__streams__name__exact = streamname))[:150] plugins = [StreamEditorPlugin(log)] entry_pair = zip(raw_entries, render_entries(request, raw_entries, plugins)) feed_model = lifestream.models.FeedForm() stream.url = "/u/%s/s/%s" % (username, stream.name) preferences = patchouli_auth.preferences.getPreferences(request.user) template_data = { 'feeds': feeds, 'entry_pair': entry_pair, 'unused_feeds': [], 'form': feed_model, 'request': request, 'stream': stream, 'stream_config': stream_config, 'username': request.user.username, 'preferences': preferences} [template_data.update(plugin.template_variables(template_data)) for plugin in plugins] return render_to_response('stream_editor.html', template_data, context_instance=django.template.RequestContext(request)) else: return django.http.HttpResponse(HACKING_MESSAGE, status=400)
def entry_pair_for_entries(request, raw_entries, plugins): """ Helper method """ return zip(raw_entries, render_entries(request, raw_entries, plugins))