def get(self):

		lances = None		
		num_resultados = self.request.get("nr")
		# critérios
	#	lan_epoca = self.request.get("epo")
		lan_competicao = self.request.get("cmp")
		#lan_jornada_numero = self.request.get("lan_jornada_numero")
		lan_clube1 = self.request.get("clu1")
		lan_clube2 = self.request.get("clu2")
		lan_arbitro = self.request.get("arb")
		lan_jogador = self.request.get("jgd")
		lan_classe = self.request.get("cla")
		cache = self.request.get("cache")
		sid =self.get_sid_from_cookie()
		
		# preciso de lista de epocas, lista de competições, lista de clubes, lista de árbitros
		
		try:
			page_index = int(self.request.get("pg","1"))
		except ValueError:
			page_index = 1
			
		# values I want, either from memcache, or to generate now
		resultados = None
		results_page = None
		results_total = None
		results_page_links = None
		
		# ok, if we have num_resultados, we have a search
		if num_resultados: 
			
			# let's take off the page. THe cache stores the full results, not the page view
			memcache_label = self.request.path+":"+self.request.query_string
			
			# if this search is in memcache, let's use it
			cacheresultados = memcache.get(memcache_label)
			
			# IF NOT or if it's obsolete, LET'S REBUILD IT
			cache_old = None
			if cacheresultados and cache != "false": 
				# let's check if there are new stuff from: jogador, clube_tem_jogador
				
				cache_old = False
				for elem in ['lance','comentador_comenta_lance','jogador_em_lance']:
					cache = memcache.get(elem)
					if cache and cache['date'] > cacheresultados['date']:
						cache_old = True
					
				
			if not cacheresultados or cache_old:
			
				# jogos = None, cono está no início
				# devia fazer default a Jogos.all(), mas de notar que há épocas, competições e jornadas 
				# como critérios antecessores. Estes podem já refinar. 
				
# FILTRO POR ANTECESSORES (epoca, competicao, jornada)
# ou seja: estes filtros produzem a GqlQuery 'jogos'
					
				lances = Lance.all()
				
				# primeiro nível: 2
				# if lan_epoca:
				# 	epoca = Epoca.get_by_id(int(lan_epoca))
				# 	lances.filter("lan_epoca = ", epoca)
					
				# segundo nível: 2x2
				if lan_competicao:
					competicao = Competicao.all().filter("cmp_nome = ",lan_competicao).get()
					lances.filter("lan_competicao = ", competicao)
					
				# segundo nível: 2x2
				# if lan_jornada_numero:
				# 	jornadas = Jornada.all().filter("jor_nome_curto = ",lan_jornada_numero).fetch(1000)
				# 	lances.filter("lan_jornada in ", jornadas)

				if lan_clube1:
					clube = Clube.get_by_id(int(lan_clube1))
					lances.filter("lan_clube1 = ", clube)
					
				if lan_clube2:
					clube = Clube.get_by_id(int(lan_clube2))
					lances.filter("lan_clube2 = ", clube)
					
				if lan_arbitro:
					arbitro = Arbitro.get_by_id(int(lan_arbitro))
					lances.filter("lan_arbitro = ", arbitro)
				
				if lan_classe:
					lances.filter("lan_classe = ", int(lan_classe))
				
				if lan_jogador:
					jogador = Jogador.all().filter("jgd_nome =",lan_jogador).get()
					jels = JogadorEmLance.all().filter("jel_jogador = ", jogador).fetch(1000)
					lance_list = []
					for j in jels:
						lance_list.append(j.jel_lance.key())
			
					lances.filter("__key__ in ", lance_list)
					
# FIM DA FILTRAGEM
					
# INÍCIO DA PAGINAÇÃO
					
				# now, let's prepare the pages
				myPagedQuery = PagedQuery(lances, int(num_resultados))
		#		myPagedQuery.order("-lan_data")
		#		try:
				results_page = myPagedQuery.fetch_page(page_index)
		#		except:
		#			error = u"Lamentamos, mas essa combinação de pesquisas não podem ser satisfeitas:<UL><LI>Pesquisas só com épocas</LI><LI>Pesquisas com épocas e nomes de jogadores</LI></UL> Por favor, reformule os critérios para gerar uma pesquisa que o motor de busca consiga satisfazer."

				
					
				myLinks = PageLinks(page=page_index, page_count=myPagedQuery.page_count(), 
					url_root=re.sub("pg=\d+", "", self.request.url), page_field="pg")	
				results_page_links = myLinks.get_links()
				results_total = lances.count()
				
				memcache_label = self.request.path+":"+self.request.query_string
				
				# let's put search results on cache
				memcache.set(memcache_label, 
				{"date":datetime.datetime.today() , "results_page":results_page, 
					"results_total":results_total, "page":page_index, 
					"results_page_links":results_page_links},time=86400)
				
			else:
				results_page = cacheresultados['results_page']
				results_total = cacheresultados['results_total']
				results_page_links = cacheresultados['results_page_links']
		
			resultados = {
			"header":{
				"obj":"lance",
				"panel":"pesquisa",
				"total":results_total,
				"nr":num_resultados
			}, 
			"content":[]
			}

			if results_page:
			
				count = (page_index - 1)*int(num_resultados)
			
				for lance in results_page:
				
					count += 1
				
					prot = []
					for jel in lance.lan_jogadores:
						prot.append(jel.jel_jogador.jgd_nome)

					resultados["content"].append({
					"nome":lance.printlance(),
					"logo1":lance.lan_jogo.jog_clube1.clu_link_logo,
					"logo2":lance.lan_jogo.jog_clube2.clu_link_logo,
					"protagonistas":", ".join(prot),
					"data":lance.lan_jogo.jog_data.strftime("%Y-%m-%d"),
					"tipo":Lance.translation_classe[lance.lan_classe],
					"jogo":lance.lan_jogo.printjogo(),
					"jogo_id":lance.lan_jogo.jog_jornada.key().id(),
					"jornada":lance.lan_jogo.jog_jornada.jor_nome,
					"jornada_id":lance.lan_jogo.jog_jornada.key().id(),
					"competicao":lance.lan_jogo.jog_jornada.jor_competicao.cmp_nome_completo+" "+lance.lan_jogo.jog_jornada.jor_competicao.cmp_epoca.epo_nome,
					"competicao_id":lance.lan_jogo.jog_jornada.jor_competicao.key().id(),
					"id":lance.key().id(),
					"click":count
					})

		flash_message = None
		if sid:
			flash_message = memcache.get(str(sid), namespace="flash")
			if flash_message:
				memcache.delete(str(sid), namespace="flash")
						
		self.render_to_output('procurar_lance.html', {

			## feedback of get variables
		#	"lan_epoca": lan_epoca,
			"lan_competicao": lan_competicao,
		#	"lan_jornada_numero": lan_jornada_numero,
			"lan_clube1": lan_clube1,
			"lan_clube2": lan_clube2,
			"lan_arbitro": lan_arbitro,
			"lan_classe": lan_classe,
			"lan_jogador": lan_jogador,
			"num_resultados": num_resultados, 
			
			"flash":flash_message,
			
			# search results
			"results": resultados,
			"results_total": results_total,
			"results_page_links":results_page_links,

			# memcache stuff
			"clubes": listas.get_lista_clubes(),
			"competicoes": listas.get_lista_competicoes(), 
			"tipos_lances": listas.get_lista_tipos_lances(),
			"arbitros": listas.get_lista_arbitros(), 
			"resultados": [15, 30, 40]
		})
Exemple #2
0
	def get(self, objname):
		
		id = self.request.get('id')
		sid = self.get_sid_from_cookie()
		tab = self.request.get('tab')
		flash_message = None
		
		if sid:
			flash_message = memcache.get(str(sid), namespace="flash")
			if flash_message:
				memcache.delete(str(sid), namespace="flash")
		
		# há que forçar o encoding do & também
		raw_referer = "/admin/"+objname+"/"
		if os.environ.has_key('HTTP_REFERER'):
			raw_referer = re.sub("&","%38",urllib.quote_plus(os.environ['HTTP_REFERER']))
		
		values = {}
		omit_properties = [] # propriedades do objecto que não precisam de ser impressas e prontas para ser editadas

#############################
######## EDIT EPOCA #########
#############################		

		if objname == "epoca":
			
			try:
                            obj = Epoca.get_by_id(int(id))
			except: 
                            obj = Epoca.all().filter("epo_nome = ", id).get()

			#### DEPENDENTE 1: COMPETICAO ####
			objname1 = "competicao"
			
			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1
				
			limit1 = 10
			
			# para editar batch de competições
			objs = []
			for competicao in obj.epo_competicoes:
				objs.append(competicao)
			
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {

				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Epoca.fields, 'tab':tab,

				# editar this: editar época
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				}),
				
				# listar dependente 1: competições desta época
				'list1': List().gera_lista({
					"objs":obj.epo_competicoes, "objname":objname1, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index1, "limit":limit1
				}),
				
				# novos dependentes 1: novas múltiplas competições anexadas a esta época
				'mnew1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'new_for_parent_id':True,
						'this_id':'epo_id', 'obj':obj, "objname":objname1, 
						'howmany':10
				}),

				# editar dependentes 1: editar múltiplas competições anexadas a esta época
				'medit1':self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'multiple_edit':True, 'obj':obj, 'objs':objs, "objname":objname1, 
						'howmany':len(objs)
				})
				
			})
			
##################################
######## EDIT COMPETICAO #########		
##################################

		elif objname == "competicao":
			try:
                            obj = Competicao.get_by_id(int(id))
			except: 
                            obj = Competicao.all().filter("cmp_nome = ", id).get()
			
			#### DEPENDENTE 1: JORNADAS ####
			objname1 = "jornada"
			objs1 = []
			for o in obj.cmp_jornadas:
				objs1.append(o)

			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1
			limit1 = 30

			#### DEPENDENTE 2: CLUBE JOGA COMPETICAO ####
			objname2 = "clube_joga_competicao"
			objs2 = []
			
			ob2 = ClubeJogaCompeticao.all().filter("cjc_competicao = ", obj)
			for o in ob2:
				objs2.append(o)
				
			try:
				page_index2 = int(self.request.get("pg_"+objname2,"1"))
			except ValueError:
				page_index2 = 1
			limit2 = 30

			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Competicao.fields, 'tab':tab,

				# editar this: editar competição
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj,
						'epocas':listas.get_lista_epocas()
				}),
				
				# listar dependente 1: jornadas desta competição
				'list1': List().gera_lista({
					"objs":obj.cmp_jornadas, "objname":objname1, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index1, "limit":limit1
				}),
				
				# novo dependente 1: novas jornadas anexada a esta competicao
				'mnew1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'new_for_parent_id':True, "objname":objname1, 
						'this_id':'cmp_id', 'obj':obj, 'howmany':10
				}),
				
				# editar dependentes 1: editar múltiplas jornadas anexadas a esta competição
				'medit1':self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'multiple_edit':True, "objname":objname1, 
						'obj':obj, 'objs':objs1, 'howmany':len(objs1)
				}),
				
				# listar dependente 2: clubes desta competição
				'list2': List().gera_lista({
					"objs":ob2, "objname":objname2, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index2, "limit":limit2
				}),
				
				# novos dependentes 2: novos clubes anexados a esta competicao
				'mnew2': self.render_subdir("admin", 'obj_%s_multiple.html' % objname2, {
						'new_for_parent_id':True, "objname":objname2, 
						'this_id':'cmp_id', 'obj':obj, 'howmany':10,
						'clubes':listas.get_lista_clubes(),
						'competicoes':listas.get_lista_competicoes()
				}),
				
				# editar dependentes 1: editar múltiplos clubes anexadas a esta competicao
				'medit2':self.render_subdir("admin", 'obj_%s_multiple.html' % objname2, {
						'multiple_edit':True, 'obj':obj, 'objs':objs2, 
						'this_id':'cmp_id','howmany':len(objs2), "objname":objname2, 
						'clubes':listas.get_lista_clubes(),
						'competicoes':listas.get_lista_competicoes()
				})
			})

###############################
######## EDIT JORNADA #########
###############################
		
		elif objname == "jornada":
			
			try:
                            obj = Jornada.get_by_id(int(id))
			except: 
                            obj = Jornada.all().filter("jor_nome = ", id).get()

			#### DEPENDENTE 1: JOGOS ####
			objname1 = 'jogo'
			objs1 = []
			for o in obj.jor_jogos:
				objs1.append(o)
			
			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1
			
			limit1 = 10
			
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Jornada.fields, 'tab':tab,

				# editar this: editar jornada
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj,
						'competicoes':listas.get_lista_competicoes()
				}),
				
				# listar dependente 1: jogos desta jornada
				'list1': List().gera_lista({
					"objs":obj.jor_jogos, "objname":objname1, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index1, "limit":limit1
				}),
				
				# novo dependente 1: novos jogos anexados a esta jornada
				'mnew1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'new_for_parent_id':True, "objname":objname1, 
						'this_id':'jor_id', 'obj':obj, 'howmany':10,
						'clubes':listas.get_lista_clubes(),
						'arbitros':listas.get_lista_arbitros(), # para select com árbitros,
						'tacticas':listas.get_lista_tacticas()
				}),
				
				# editar dependentes 1: editar múltiplos jogos anexadas a esta jornada
				'medit1':self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'multiple_edit':True, 'obj':obj, 'objs':objs1, 
						'howmany':len(objs1), 
						'clubes':listas.get_lista_clubes(),
						'arbitros':listas.get_lista_arbitros(), # para select com árbitros,
						'tacticas':listas.get_lista_tacticas()
				})
			})

############################
######## EDIT JOGO #########
############################

		elif objname == "jogo":
			try:
                            obj = Jogo.get_by_id(int(id))
			except: 
                            obj = Jogo.all().filter("jog_nome = ", id).get()

			# DEPENDENTE 1
			objname1 = 'jogador_joga_jogo'
			objs1 = []

			for o in obj.jog_jogadores:
				objs1.append(o)

			# DEPENDENTE 2
			objname2 = 'lance'
			objs2 = []
			for o in obj.jog_lances:
				objs2.append(o)

			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1

			try:
				page_index2 = int(self.request.get("pg_"+objname2,"1"))
			except ValueError:
				page_index2 = 1
			
			limit1 = 30
			limit2 = 10		
	
			# vamos buscas jogadores dos dois clubes e colocar na select box
			# aproveitar e retirar aqueles que já lá estão
			todos_jogadores = []
			jogadores_clube1 = []
			jogadores_clube2 = []
			
			for jogador in obj.jog_jogadores:
				todos_jogadores.append(jogador.jjj_jogador)
				if jogador.jjj_clube == obj.jog_clube1:
					jogadores_clube1.append(jogador)
						
				else:
					if jogador.jjj_clube == obj.jog_clube2:
						jogadores_clube2.append(jogador)	

			todos_jogadores_clube1 = Jogador.all().filter("jgd_clube_actual = ", obj.jog_clube1).fetch(1000)
			todos_jogadores_clube2 = Jogador.all().filter("jgd_clube_actual = ", obj.jog_clube2).fetch(1000)
			
			# JOGADOR
			todos_jogadores_clube1 = sorted(todos_jogadores_clube1, cmp=lambda x,y: cmp(x.jgd_numero, y.jgd_numero))
			todos_jogadores_clube2 = sorted(todos_jogadores_clube2, cmp=lambda x,y: cmp(x.jgd_numero, y.jgd_numero))
			todos_jogadores = sorted(todos_jogadores, cmp=lambda x,y: cmp(x.jgd_nome, y.jgd_nome))
			
			# JJJ
			jogadores_clube1 = sorted(jogadores_clube1, cmp=lambda x,y: cmp(x.jjj_jogador.jgd_numero, y.jjj_jogador.jgd_numero))
			jogadores_clube2 = sorted(jogadores_clube2, cmp=lambda x,y: cmp(x.jjj_jogador.jgd_numero, y.jjj_jogador.jgd_numero))
			
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Jogo.fields, 'tab':tab,

				# editar this: editar jogo
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj,
						'clubes':listas.get_lista_clubes(),
						'arbitros':listas.get_lista_arbitros(), # para select com árbitros,
						'tacticas':listas.get_lista_tacticas()
				}),
				
				# listar dependente 1: jjjs deste jogo
				'list1': List().gera_lista({
					"objs":obj.jog_jogadores, "objname":objname1, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index1, "limit":limit1
				}),
				
				# novo dependente 1: novos jjj anexados a este jogo
				'mnew1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'new_for_parent_id':True, "objname":objname1, 
						'this_id':'jog_id', 'obj':obj, 'howmany':28, 
						# parâmetros extra
						'jogadores_clube1':todos_jogadores_clube1,
						'jogadores_clube2':todos_jogadores_clube2,
						'clubes':listas.get_lista_clubes(),
						'posicoes':listas.get_lista_posicoes(),
						'arbitros':listas.get_lista_arbitros(),
						'tacticas':listas.get_lista_tacticas()
						
				}),

				# editar dependentes 1: editar múltiplos jjj anexadas a este jogo
				
				# on the render, use jjj_clube1 and jjj_clube2 instead of obj.jog_jogadores
				# because they are ordered.
				'medit1':self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'multiple_edit':True, 'obj':obj, 'objs':objs1, 
						'howmany':len(objs1),  "objname":objname1, 
						# parâmetros extra
						'jogadores_clube1':todos_jogadores_clube1,
						'jogadores_clube2':todos_jogadores_clube2,
						'clubes':listas.get_lista_clubes(),
						'posicoes':listas.get_lista_posicoes(),
						'jjj_clube1':jogadores_clube1,
						'jjj_clube2':jogadores_clube2,
						'arbitros':listas.get_lista_arbitros(), 
						'tacticas':listas.get_lista_tacticas()
				}),
				
				# listar dependente 2: lances deste jogo
				'list2': List().gera_lista({
					"objs":obj.jog_lances, "objname":objname2, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index2, "limit":limit2
				}),
				
				# novos dependentes 2: novos lances associados a este jogo
				'mnew2': self.render_subdir("admin", 'obj_%s_multiple.html' % objname2, {
						'new_for_parent_id':True, "objname":objname2, 
						'this_id':'jog_id', 'obj':obj, 'howmany':10,
						#parâmetros extra
						'jogadores_clube1':todos_jogadores_clube1,
						'jogadores_clube2':todos_jogadores_clube2,
						'jogadores':todos_jogadores,
						'clubes':listas.get_lista_clubes(),
						'tipos_lances':listas.get_lista_tipos_lances(),
						'tipos_jels':listas.get_lista_tipos_jels(),
						'comentadores':listas.get_lista_comentadores()
				}),
				
				# editar dependentes 1: editar múltiplos lances anexadas a este jogo
				'medit2':self.render_subdir("admin", 'obj_%s_multiple.html' % objname2, {
						'multiple_edit':True, 'obj':obj, 'objs':objs2, 
						'howmany':len(objs2),  "objname":objname2, 
						'jogadores_clube1':todos_jogadores_clube1,
						'jogadores_clube2':todos_jogadores_clube2,
						'jogadores':todos_jogadores,
						'clubes':listas.get_lista_clubes(),
						'tipos_lances':listas.get_lista_tipos_lances(),
						'tipos_jels':listas.get_lista_tipos_jels(),
						'comentadores':listas.get_lista_comentadores()
				}),
			})

#############################
######## EDIT LANCE #########
#############################
			
		elif objname == "lance":
			
			try:
                            obj = Lance.get_by_id(int(id))
			except: 
                            obj = Lance.all().filter("lan_nome = ", id).get()

			# DEPENDENTE 1	
			objname1 = 'comentador_comenta_lance'
			objs1 = []
			for o in ComentadorComentaLance.all().filter("ccl_lance = ", obj):
				objs1.append(o)

			# DEPENDENTE 2			
			objname2 = 'jogador_em_lance'
			objs2 = []
			for o in JogadorEmLance.all().filter("jel_lance = ", obj):
				objs2.append(o)

			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1

			try:
				page_index2 = int(self.request.get("pg_"+objname2,"1"))
			except ValueError:
				page_index2 = 1
						
			limit1 = 10
			limit2 = 10
			
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Lance.fields, 'tab':tab,

				# editar this: editar lance
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj, 'objname':objname,
						'tipos_lances':listas.get_lista_tipos_lances()
				}),
				
				# listar dependente 1: ccls deste lance
				'list1': List().gera_lista({
					"objs":obj.lan_comentadores, "objname":objname1, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index1, "limit":limit1
				}),
				
				# novo dependente 1: novos ccls anexados a este lance
				'mnew1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'new_for_parent_id':True, 'objname':objname1,
						'this_id':'lan_id', 'obj':obj, 'howmany':3,
						# parâmetros extra
						'comentadores':listas.get_lista_comentadores()
				}),

				# editar dependentes 1: editar múltiplos ccls anexadas a este lance
				'medit1':self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'multiple_edit':True, 'obj':obj, 'objs':objs1, 
						'this_id':'lan_id','howmany':len(objs1), 'objname':objname1,
						'comentadores':listas.get_lista_comentadores()
				}),
				
				# listar dependente 2: comentadores deste lance
				'list2': List().gera_lista({
					"objs":obj.lan_jogadores, "objname":objname2, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index2, "limit":limit2
				}),
				
				# novo dependente 2: novos ccls associados a este lance
				'mnew2': self.render_subdir("admin", 'obj_%s_multiple.html' % objname2, {
						'new_for_parent_id':True, 'objname':objname2,
						'this_id':'lan_id', 'obj':obj, 'howmany':3,
						#parâmetros extra
						'tipos_jels':listas.get_lista_tipos_jels(),
				}),
				# editar dependentes 1: editar múltiplos ccls anexadas a este lance
				'medit2':self.render_subdir("admin", 'obj_%s_multiple.html' % objname2, {
						'multiple_edit':True, 'obj':obj, 'objs':objs2, 
						'this_id':'lan_id','howmany':len(objs2),'objname':objname2,
						'tipos_jels':listas.get_lista_tipos_jels(),
				}),
			})

#############################
######## EDIT CLUBE #########
#############################
		
		elif objname == "clube":
			
			try:
                            obj = Clube.get_by_id(int(id))
			except: 
                            obj = Clube.all().filter("clu_nome = ", id).get()

			# DEPENDENTE 1	
			objname1 = 'jogador'
			
			# List() use Query object. medit use list of retrieved objectd
			objs = Jogador.all().filter("jgd_clube_actual = ", obj)
			objs1 = []
			for o in Jogador.all().filter("jgd_clube_actual = ", obj):
				objs1.append(o)
			
			objs1 = sorted(objs1, cmp=lambda x,y: cmp(x.jgd_numero, y.jgd_numero))
						
			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1
			
			limit1 = 40
			posicoes = listas.get_lista_posicoes()
			clubes = listas.get_lista_clubes()
			
			logging.info("Starting lista")
			foo = List().gera_lista({
				"objs":objs, "objname":objname1, 
				"filter_field":None, "filter_needle":None, 
				"url":self.request.url, "referrer":objname,
				"page_index":page_index1, "limit":limit1
			})
			foo2 = None
			try :
				foo2 = self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
					'new_for_parent_id':True, 'objname':objname1,
					'this_id':'clu_id', 'obj':obj, 'howmany':10,
					'clubes':clubes,
					'posicoes':posicoes
				})
			except:
				logging.info(sys.exc_info())

			foo3 = None
			try :
				foo3 = self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
					'multiple_edit':True, 'obj':obj, 'objs':objs1, 
					'this_id':'clu_id','howmany':len(objs1), 'objname':objname1,
					'clubes':clubes,
					'posicoes':posicoes
					})
			except:
				logging.info(sys.exc_info())
			
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Clube.fields, 'tab':tab,

				# editar this: editar clube
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj, 'objname': objname
				}),
				
				# listar dependente 1: jogadores actuais deste clube
				'list1': foo,
				
				# novo dependente 1: jogadores actuais deste clube
				'mnew1': foo2,

				# editar dependentes 1: editar jogadores actuais deste clube
				'medit1':foo3,
			})

##############################
####### EDIT JOGADOR #########
##############################

		elif objname == "jogador":
		
			try:
                            obj = Jogador.get_by_id(int(id))
			except: 
                            obj = Jogador.all().filter("jgd_nome = ", id).get()

			#dependente 1
			objname1 = 'clube_tem_jogador'
			objs1 = []
			for o in ClubeTemJogador.all().filter("ctj_jogador = ", obj):
				objs1.append(o)
			
			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1

			limit1 = 20
			
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Jogador.fields, 'tab':tab,

				# editar this: editar jogador
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj,
						'posicoes':listas.get_lista_posicoes(),
						'epocas':listas.get_lista_epocas(),
						'clubes':listas.get_lista_clubes()

				}),
				
				# listar dependente 1: clubes deste jogador
				'list1': List().gera_lista({
					"objs":obj.jgd_clubes, "objname":objname1, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index1, "limit":limit1
				}),
				
				# novo dependente 1: novos CTJs anexados a este jogador
				'mnew1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'new_for_parent_id':True,
						'this_id':'jgd_id', 'obj':obj,
						'howmany':10, "objname":objname1, 
						'epocas':listas.get_lista_epocas(),
						'clubes':listas.get_lista_clubes()
				}),
				
				# edit dependente 1: editar CTJs anexados a este jogador
				'medit1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'multiple_edit':True, 'obj':obj, 'objs':objs1, 
						'this_id':'jgd_id','howmany':len(objs1), 'objname':objname1,
						'epocas':listas.get_lista_epocas(),
						'clubes':listas.get_lista_clubes()
				}),
				
			})

##############################
####### EDIT ARBITRO #########
##############################
		
		elif objname == "arbitro":
			
			try:
                            obj = Arbitro.get_by_id(int(id))
			except: 
                            obj = Arbitro.all().filter("arb_nome = ", id).get()

			# DEPENDENCIA 1: JOGOS
			objname1 = 'jogo'

			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1
			
			limit1 = 10

			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Arbitro.fields, 'tab':tab,

				# editar this: editar árbitro
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				}),
				
				# listar dependente 1: jogos deste árbitro
				'list1': List().gera_lista({
					"objs":obj.arb_jogos, "objname":objname1, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index1, "limit":limit1
				}),
				
				# novo dependente 1: novos jogos anexados a este árbitro
				'new1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'new_for_parent_id':True, "objname":objname1, 
						'this_id':'arb_id', 'obj':obj
				})
			})

#################################
####### EDIT COMENTADOR #########
#################################

		elif objname == "comentador":
			
			obj = Comentador.get_by_id(id)
			# DEPENDENTE 1
			objname1 = 'comentador_comenta_lance'
			
			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1
			
			limit1 = 10

			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Comentador.fields, 'tab':tab,

				# editar this: editar comentador
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				}),
				
				# listar dependente 1: lances deste comentador
				'list1': List().gera_lista({
					"objs":obj.com_lances, "objname":objname1, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index1, "limit":limit1
				}),
				
				# novo dependente 1: novos lances anexados a este comentador
				'new1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'new_for_parent_id':True, "objname":objname1, 
						'this_id':'com_id', 'obj':obj, 'howmany':3
				})
			})		

############################
####### EDIT FONTE #########
############################

		elif objname == "fonte":
			
			obj = Fonte.get_by_id(id)

			# DEPENDENCIA1: 
			objname1 = 'comentador'
			
			try:
				page_index1 = int(self.request.get("pg_"+objname1,"1"))
			except ValueError:
				page_index1 = 1
			
			limit1 = 10

			# now let's render the edit page
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': Fonte.fields, 'tab':tab,

				# editar this: editar fonte
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				}),
				
				# listar dependente 1: comentadores desta fonte
				'list1': List().gera_lista({
					"objs":obj.fon_comentadores, "objname":objname1, 
					"filter_field":None, "filter_needle":None, 
					"url":self.request.url, "referrer":objname,
					"page_index":page_index1, "limit":limit1
				}),
				
				# novo dependente 1: novos comentadores anexados a esta fonte
				'new1': self.render_subdir("admin", 'obj_%s_multiple.html' % objname1, {
						'new_for_parent_id':True, "objname":objname1, 
						'this_id':'fon_id', 'obj':obj
				})
			})		
			

######## EDIT clube_tem_jogador #########
			
		elif objname == "clube_tem_jogador":

			obj = ClubeTemJogador.get_by_id(id)

			# now let's render the edit page
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': ClubeTemJogador.fields, 'tab':tab,

				# editar this: editar fonte
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				})
			})
				
######## EDIT clube_joga_competicao #########
				
		elif objname == "clube_joga_competicao":
			obj = ClubeJogaCompeticao.get_by_id(id)

			# now let's render the edit page
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': ClubeJogaCompeticao.fields, 'tab':tab,

				# editar this: editar fonte
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				})
			})

######## EDIT jogador_joga_jogo #########
						
		elif objname == "jogador_joga_jogo":
			obj = JogadorJogaJogo.get_by_id(id)

			# now let's render the edit page
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': JogadorJogaJogo.fields, 'tab':tab,

				# editar this: editar fonte
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				})
			})

######## EDIT comentador_comenta_lance #########

		elif objname == "comentador_comenta_lance":
			obj = ComentadorComentaLance.get_by_id(id)

			# now let's render the edit page
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': ComentadorComentaLance.fields, 'tab':tab,

				# editar this: editar fonte
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				})
			})

######## EDIT jogador_em_lance #########

		elif objname == "jogador_em_lance":
			obj = JogadorEmLance.get_by_id(id)

			# now let's render the edit page
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': JogadorEmLance.fields, 'tab':tab,

				# editar this: editar fonte
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				})
			})
		
######## EDIT acumulador jornada #########
			
		elif objname == "acumulador_jornada":
			obj = AcumuladorJornada.get_by_id(id)

			# now let's render the edit page
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': AcumuladorJornada.fields, 'tab':tab,

				# editar this: editar fonte
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				})
			})
			
			
######## EDIT acumulador competicao #########
			
		elif objname == "acumulador_competicao":
			obj = AcumuladorCompeticao.get_by_id(id)

			# now let's render the edit page
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': AcumuladorCompeticao.fields, 'tab':tab,

				# editar this: editar fonte
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				})
			})
	
######## EDIT acumulador epoca #########
			
		elif objname == "acumulador_epoca":
			obj = AcumuladorEpoca.get_by_id(id)

			# now let's render the edit page
			self.render_subdir_to_output("admin", 'edit_%s.html' % objname, {
				'obj':obj, 'flash': flash_message,
				'objname': objname, 'fields': AcumuladorEpoca.fields, 'tab':tab,

				# editar this: editar fonte
				'edit': self.render_subdir("admin", 'obj_%s.html' % objname, {
						'edit':True, 'obj': obj
				})
			})
Exemple #3
0
	def get(self, objname):
		
		sid = self.get_sid_from_cookie()
		flash_message = None
		if sid:
			flash_message = memcache.get(str(sid), namespace="flash")
			if flash_message:
				memcache.delete(str(sid), namespace="flash")

		# gera a lista de entradas para este obj_name
		# objs, objname, filter_field, filter_needle, url, page_index, limit
		
		initial_objs = None
		fields = None
		
		tab = self.request.get("tab")
		
		if objname == "clube":
			initial_objs =  Clube.all()
			fields = Clube.fields
		elif objname == "jogador":
			initial_objs =  Jogador.all()
			fields = Jogador.fields
		elif objname == "epoca":
			initial_objs =  Epoca.all()
			fields = Epoca.fields
		elif objname == "competicao":
			initial_objs =  Competicao.all()
			fields = Competicao.fields
		elif objname == "jogo":
			initial_objs =  Jogo.all()
			fields = Jogo.fields
		elif objname == "arbitro":
			initial_objs =  Arbitro.all()
			fields = Arbitro.fields
		elif objname == "comentador":
			initial_objs =  Comentador.all()
			fields = Comentador.fields
		elif objname == "fonte":
			initial_objs =  Fonte.all()
			fields = Fonte.fields
		elif objname == "jornada":
			initial_objs =  Jornada.all()
			fields = Jornada.fields
		elif objname == "lance":
			initial_objs =  Lance.all()
			fields = Lance.fields
			
		elif objname == "clube_tem_jogador":
			initial_objs =  ClubeTemJogador.all()
			fields = ClubeTemJogador.fields
		elif objname == "clube_joga_competicao":
			initial_objs =  ClubeJogaCompeticao.all()
			fields = ClubeJogaCompeticao.fields
		elif objname == "jogador_joga_jogo":
			initial_objs =  JogadorJogaJogo.all()
			fields = JogadorJogaJogo.fields
		elif objname == "comentador_comenta_lance":
			initial_objs =  ComentadorComentaLance.all()
			fields = ComentadorComentaLance.fields
		elif objname == "jogador_em_lance":
			initial_objs =  JogadorEmLance.all()
			fields = JogadorEmLance.fields

		elif objname == "acumulador_jornada":
			initial_objs =  AcumuladorJornada.all()
			fields = AcumuladorJornada.fields
		elif objname == "acumulador_competicao":
			initial_objs =  AcumuladorCompeticao.all()
			fields = AcumuladorCompeticao.fields
		elif objname == "acumulador_epoca":
			initial_objs =  AcumuladorEpoca.all()
			fields = AcumuladorEpoca.fields
	
                lista = List().gera_lista_vazia({
			"objs":initial_objs, 
			"objname":objname, 
			"filter_field":None,
			"filter_needle":None, 
			"url":self.request.url, 
			"referrer":objname,
			"flash":None,
                        "fields":fields
			})
#		lista = List().gera_lista({
#			"objs":initial_objs, 
#			"objname":objname, 
#			"filter_field":None,
#			"filter_needle":None, 
#			"url":self.request.url, 
#			"referrer":objname,
#			"page_index":1, 
#			"limit":15,
#			"flash":None})

#############
### EPOCA ###
#############

		if objname == "epoca":
			
			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
				'new_single':new_single,
				'objname': objname,
				'flash': flash_message,
				'list': lista,
				'tab':tab
			})

##################
### COMPETICAO ###
##################

		elif objname == "competicao":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True, 
				'epocas':listas.get_lista_epocas()
			})
		
			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10, 
				'epocas':listas.get_lista_epocas()
			})
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
				'new_single':new_single,
				'new_multiple':new_multiple,
				'objname': objname,
				'flash': flash_message,
				'list': lista,
				'tab':tab
			})

###############
### JORNADA ###
###############

		elif objname == "jornada":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True,
				'competicoes':listas.get_lista_competicoes()

			})
		
			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10,
				'competicoes':listas.get_lista_competicoes()
			})
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
				'new_single':new_single,
				'new_multiple':new_multiple,
				'objname': objname,
				'flash': flash_message,
				'list': lista,
				'tab':tab
			})
			
############
### JOGO ###
############

		elif objname == "jogo":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True,
				'clubes':listas.get_lista_clubes(),# para select com clubes,
				'arbitros':listas.get_lista_arbitros(), # para select com árbitros,
				'tacticas':listas.get_lista_tacticas()
			})
		
			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10,
				'clubes':listas.get_lista_clubes(),# para select com clubes,
				'arbitros':listas.get_lista_arbitros(), # para select com árbitros,
				'tacticas':listas.get_lista_tacticas()
			})
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
				'new_single':new_single,
				'new_multiple':new_multiple,
				'objname': objname,
				'flash': flash_message,
				'list': lista,
				'tab':tab
			})

#############
### LANCE ###
#############

		elif objname == "lance":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True,
				'tipos_lances':listas.get_lista_tipos_lances(),
				'tipos_jels':listas.get_lista_tipos_jels(),
				'comentadores':listas.get_lista_comentadores()
			})
		
			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10,
				'tipos_lances':listas.get_lista_tipos_lances(),
				'tipos_jels':listas.get_lista_tipos_jels(),
				'comentadores':listas.get_lista_comentadores()
			})
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
				'new_single':new_single,
				'new_multiple':new_multiple,
				'objname': objname,
				'flash': flash_message,
				'list': lista,
				'tab':tab
			})

#############
### CLUBE ###
#############

		elif objname == "clube":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
				'new_single':new_single,
				'objname': objname,
				'flash': flash_message,
				'list': lista,
				'tab':tab
			})

###############
### JOGADOR ###
###############

		elif objname == "jogador":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True,
				'posicoes': listas.get_lista_posicoes(),
				'clubes': listas.get_lista_clubes(),
				'epocas':listas.get_lista_epocas()
			})
		
			# new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
			# 	'objname': objname,
			# 	'fields': fields,
			# 	'new_multiple':True,
			# 	'howmany':10,
			# 	'posicoes': listas.get_lista_posicoes(),
			# 	'clubes': listas.get_lista_clubes(),
			#	'epocas':listas.get_lista_epocas()
			# })
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
				'new_single':new_single,
#				'new_multiple':new_multiple,
				'objname': objname,
				'flash': flash_message,
				'list': lista,
				'tab':tab
			})

###############
### ARBITRO ###
###############

		elif objname == "arbitro":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
			
			# new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
			# 	'objname': objname,
			# 	'fields': fields,
			# 	'new_multiple':True,
			# 	'howmany':10
			# })
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})

##################
### COMENTADOR ###
##################

		elif objname == "comentador":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})
			
#############
### FONTE ###
#############

		elif objname == "fonte":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})
			
#########################
### CLUBE_TEM_JOGADOR ###
#########################

		elif objname == "clube_tem_jogador":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10
			})	
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'new_multiple':new_multiple,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})			

#############################
### CLUBE_JOGA_COMPETICAO ###
#############################

		elif objname == "clube_joga_competicao":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10
			})	
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'new_multiple':new_multiple,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})			

#########################
### JOGADOR_JOGA_JOGO ###
#########################

		elif objname == "jogador_joga_jogo":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10
			})	
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'new_multiple':new_multiple,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})			

################################
### COMENTADOR_COMENTA_LANCE ###
################################

		elif objname == "comentador_comenta_lance":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10
			})	
						
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'new_multiple':new_multiple,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})			

########################
### JOGADOR_EM_LANCE ###
########################

		elif objname == "jogador_em_lance":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10
			})	
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'new_multiple':new_multiple,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})			


##########################
### ACUMULADOR JORNADA ###
##########################

		elif objname == "acumulador_jornada":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})

			new_multiple = self.render_subdir("admin", 'obj_%s_multiple.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_multiple':True,
				'howmany':10
			})
		
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'new_multiple':new_multiple,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})

##########################
### ACUMULADOR COMPETICAO ###
##########################

		elif objname == "acumulador_competicao":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})
			
##########################
### ACUMULADOR EPOCA ###
##########################

		elif objname == "acumulador_epoca":

			## TAB renders
			new_single = self.render_subdir("admin", 'obj_%s.html' % objname, {
				'objname': objname,
				'fields': fields,
				'new_single':True
			})
		
			
			## HOME render
			self.render_subdir_to_output("admin", 'home_'+objname+'.html', {
			'new_single':new_single,
			'objname': objname,
			'flash': flash_message,
			'list': lista,
			'tab':tab
			})