def editable_cards():
	""" Renders cards for all jammers with a ticket , and lets them be edited."""
	jamsite = JamSite.load()
	jamsite.apply_human()
	if not_imported(jamsite):
		return redirect(url_for('index'))
	return Response(render_editable_jammers(jamsite.jammers_with_ticket, 
				ui=edit_jammer_ui.format(url=url_for('update_jammer')), 
				extra=load_extra()))
def cards():
	""" Renders cards for all jammers with a ticket """
	jamsite = JamSite.load()
	jamsite.apply_human()
	if not_imported(jamsite):
		return redirect(url_for('index'))
	return Response(render_jammers(jamsite.jammers_sorted_by_main_role(with_ticket=True), extra=load_extra()))
	if type(args.sources) is list:
		sources = []
		for source in args.sources:
			if "http" in source:
				#foo hack to guess if fields is given, it belongs to an external source.
				sources.append(dict(url=source, fields=args.fields))

			else:
				sources.append(dict(file=source))
	else:
		# Load sources from config, if that fails, default.
		sources = load_sources()
		
		# Add extra fields to rendering.
		if args.extra is None:
			extra = load_extra()
		else:
			extra = True		

	print("""
	Starting to create the jammer cards. importing from %d source(s).

	Have yourself a cup of tea!
	This will take a couple of minutes the first time it is done.
	(Because it takes a while to fetch the profile pictures)
	
	Everything will be cached from now on, 
	and this should take significantly lesser time on subsequent runs ;).

	The generated file will open automatically in your browser when
	completed.