Exemplo n.º 1
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
				})
			})
Exemplo n.º 2
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
			})