Commit a18e9bd75f59bd089e34dfce80f3b111b6a169c6

Authored by Edmar Moretti
1 parent 112cad2d

$1

admin/admin.db
No preview for this file type
admin/js/estat_editor.js
@@ -533,7 +533,7 @@ i3GEOadmin.editor = { @@ -533,7 +533,7 @@ i3GEOadmin.editor = {
533 '<option value=apagar >Apagar dados atuais e incluir do SHP</option>' + 533 '<option value=apagar >Apagar dados atuais e incluir do SHP</option>' +
534 '</select></p>' + 534 '</select></p>' +
535 '<p class="paragrafo" >C&oacute;digo da proje&ccedil;&atilde;o (SRID) Assegure-se que o shapefile esteja na proje&ccedil;&atilde;o geogr&aacute;fica se voc&ecirc; for usar com o sistema de metadados estat&iacute;sticos :<br><input class=digitar type="text" value="4326" size=20 id="srid" name="srid" style="top:0px;left:0px;cursor:pointer;"></p>' + 535 '<p class="paragrafo" >C&oacute;digo da proje&ccedil;&atilde;o (SRID) Assegure-se que o shapefile esteja na proje&ccedil;&atilde;o geogr&aacute;fica se voc&ecirc; for usar com o sistema de metadados estat&iacute;sticos :<br><input class=digitar type="text" value="4326" size=20 id="srid" name="srid" style="top:0px;left:0px;cursor:pointer;"></p>' +
536 - '<p class="paragrafo" ><input type="checkbox" id="incluiserialshp" name="incluiserialshp" style="cursor:pointer;position:relative;top:2px;">&nbsp;Inclui uma coluna gid do tipo serial e chave prim&aacute;ria com c&oacute;digo &uacute;nico</p>' + 536 + '<p class="paragrafo" ><input type="checkbox" id="incluiserialshp" name="incluiserialshp" style="cursor:pointer;position:relative;top:2px;">&nbsp;Inclui uma coluna gid do tipo serial e chave prim&aacute;ria com c&oacute;digo &uacute;nico</p>' +
537 '<p class="paragrafo" ><input id=i3GEOuploadsubmit type="button" value="Enviar" size=12 />' + 537 '<p class="paragrafo" ><input id=i3GEOuploadsubmit type="button" value="Enviar" size=12 />' +
538 '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' + 538 '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' +
539 '<input type="hidden" id="i3GEOuploadcodigoconexao" name="i3GEOuploadcodigoconexao" value="">' + 539 '<input type="hidden" id="i3GEOuploadcodigoconexao" name="i3GEOuploadcodigoconexao" value="">' +
@@ -564,6 +564,7 @@ i3GEOadmin.editor = { @@ -564,6 +564,7 @@ i3GEOadmin.editor = {
564 $i("i3GEOuploadcodigoconexao").value = $i("i3GEOadmincodigo_estat_conexao").value; 564 $i("i3GEOuploadcodigoconexao").value = $i("i3GEOadmincodigo_estat_conexao").value;
565 $i("i3GEOuploadesquema").value = $i("i3GEOadminesquema").value; 565 $i("i3GEOuploadesquema").value = $i("i3GEOadminesquema").value;
566 $i("i3GEOuploadf").submit(); 566 $i("i3GEOuploadf").submit();
  567 + $i("tabelaDestino").value = "";
567 } 568 }
568 }, 569 },
569 uploadcsv: { 570 uploadcsv: {
@@ -584,6 +585,8 @@ i3GEOadmin.editor = { @@ -584,6 +585,8 @@ i3GEOadmin.editor = {
584 var ins = '<fieldset><form id=i3GEOuploadcsvf target="i3GEOuploadcsviframe" action="../php/metaestat_uploadcsv_submit.php" method="post" ENCTYPE="multipart/form-data">' + 585 var ins = '<fieldset><form id=i3GEOuploadcsvf target="i3GEOuploadcsviframe" action="../php/metaestat_uploadcsv_submit.php" method="post" ENCTYPE="multipart/form-data">' +
585 '<p class="paragrafo" >CSV (utilize ponto como separador de valores decimais ou a importa&ccedil;&atilde;o poder&aacute; n&atilde;o ocorrer): <br><input class=digitar type="file" size=22 name="i3GEOuploadcsv" style="top:0px;left:0px;cursor:pointer;"></p>' + 586 '<p class="paragrafo" >CSV (utilize ponto como separador de valores decimais ou a importa&ccedil;&atilde;o poder&aacute; n&atilde;o ocorrer): <br><input class=digitar type="file" size=22 name="i3GEOuploadcsv" style="top:0px;left:0px;cursor:pointer;"></p>' +
586 '<p class="paragrafo" >Nome da nova tabela (n&atilde;o utilize caracteres incompat&iacute;veis com o banco de dados, como -, acentos ou espa&ccedil;os em branco):<br><input class=digitar type="text" size=20 id="tabelaDestinocsv" name="tabelaDestinocsv" style="top:0px;left:0px;cursor:pointer;"></p>' + 587 '<p class="paragrafo" >Nome da nova tabela (n&atilde;o utilize caracteres incompat&iacute;veis com o banco de dados, como -, acentos ou espa&ccedil;os em branco):<br><input class=digitar type="text" size=20 id="tabelaDestinocsv" name="tabelaDestinocsv" style="top:0px;left:0px;cursor:pointer;"></p>' +
  588 + '<p class="paragrafo" ><input type="checkbox" id="incluiserialcsv" name="incluiserialcsv" style="cursor:pointer;position:relative;top:2px;">&nbsp;Inclui uma coluna gid do tipo serial e chave prim&aacute;ria com c&oacute;digo &uacute;nico</p>' +
  589 +
587 '<p class="paragrafo" ><input id=i3GEOuploadcsvsubmit type="button" value="Enviar" size=12 />' + 590 '<p class="paragrafo" ><input id=i3GEOuploadcsvsubmit type="button" value="Enviar" size=12 />' +
588 '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' + 591 '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' +
589 '<input type="hidden" id="i3GEOuploadcsvcodigoconexao" name="i3GEOuploadcsvcodigoconexao" value="">' + 592 '<input type="hidden" id="i3GEOuploadcsvcodigoconexao" name="i3GEOuploadcsvcodigoconexao" value="">' +
@@ -602,6 +605,7 @@ i3GEOadmin.editor = { @@ -602,6 +605,7 @@ i3GEOadmin.editor = {
602 $i("i3GEOuploadcsvcodigoconexao").value = $i("i3GEOadmincodigo_estat_conexao").value; 605 $i("i3GEOuploadcsvcodigoconexao").value = $i("i3GEOadmincodigo_estat_conexao").value;
603 $i("i3GEOuploadcsvesquema").value = $i("i3GEOadminesquema").value; 606 $i("i3GEOuploadcsvesquema").value = $i("i3GEOadminesquema").value;
604 $i("i3GEOuploadcsvf").submit(); 607 $i("i3GEOuploadcsvf").submit();
  608 + $i("tabelaDestinocsv").value = "";
605 } 609 }
606 }, 610 },
607 esvaziaFormsUpload: function(){ 611 esvaziaFormsUpload: function(){
admin/php/metaestat_uploadcsv_submit.php
@@ -162,6 +162,9 @@ if (ob_get_level() == 0) ob_start(); @@ -162,6 +162,9 @@ if (ob_get_level() == 0) ob_start();
162 ob_flush(); 162 ob_flush();
163 flush(); 163 flush();
164 sleep(1); 164 sleep(1);
  165 + if($_POST["incluiserialcsv"] == "on"){
  166 + $linhasql[] = "alter table ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." add gid serial CONSTRAINT gid_pkey PRIMARY KEY";
  167 + }
165 foreach($sqltabela as $linha){ 168 foreach($sqltabela as $linha){
166 try { 169 try {
167 $dbh->query($linha); 170 $dbh->query($linha);
pacotes/atualiza.py 0 → 100644
@@ -0,0 +1,245 @@ @@ -0,0 +1,245 @@
  1 +#!/usr/bin/env python
  2 +# -*- coding: utf-8 -*-
  3 +"""
  4 +Created on Fri Jan 11 17:26:01 2013
  5 +
  6 +@author: Diego
  7 +"""
  8 +import os, subprocess
  9 +import sqlite3
  10 +import os
  11 +import time
  12 +
  13 +TABELA_ORIGINAL = 'tb_proxy'
  14 +
  15 +tables = {}
  16 +tables[TABELA_ORIGINAL] = [[u'id', u'INTEGER PRIMARY KEY'],
  17 + [u'proxy', u'TEXT'],
  18 + [u'port', u'TEXT'],
  19 + [u'user', u'TEXT'],
  20 + [u'password', u'TEXT'],
  21 + [u'exceptions', u'TEXT']]
  22 +
  23 +class ProxyDB():
  24 + def __init__(self, path, nome):
  25 + self.con = self.getDB(path, nome)
  26 + if not self.isMetadadosDB():
  27 + self.createTables()
  28 +
  29 + def getDB(self, path, nome):
  30 + banco = os.path.join(path,nome)
  31 + if os.path.exists(path):
  32 + try:
  33 + con = sqlite3.connect(banco)
  34 + return con
  35 + except:
  36 + print 'Não foi possível criar uma conecção com o BD:{0}'\
  37 + .format(banco)
  38 + return None
  39 + else:
  40 + print 'Não foi possível encontrar o caminho especificado:{0}'\
  41 + .format(banco)
  42 + return None
  43 +
  44 +
  45 + def isMetadadosDB(self):
  46 + cur = self.con.cursor()
  47 + tablesNames = tables.keys()
  48 + for i in tablesNames:
  49 + teste = False
  50 + for j in cur.execute("select name from sqlite_master where type ='table'"):
  51 + teste = i == j[0]
  52 + if teste:
  53 + break
  54 + if not teste:
  55 + return teste
  56 + return teste
  57 +
  58 + def createTables(self):
  59 + tablesName = tables.keys()
  60 + tablesName.reverse()
  61 + for table in tablesName :
  62 + sql = "CREATE TABLE {0}(".format(table)
  63 + columns = tables.get(table)
  64 + column = columns.pop(0)
  65 + sql = "{0} {1} {2}".format(sql, column[0], column[1])
  66 + for column in columns:
  67 + sql = "{0}, {1} {2}".format(sql, column[0], column[1])
  68 + sql = "{0});".format(sql)
  69 + cur = self.con.cursor()
  70 + cur.execute(sql)
  71 + self.con.commit()
  72 +
  73 + def inserirItem(self, nomeTabela, dicionario):
  74 + sql = "INSERT INTO {0}".format(nomeTabela)
  75 + columns = dicionario.keys()
  76 + values = []
  77 + for key in columns:
  78 + value = dicionario.get(key)
  79 + if type(value) == str:
  80 + values.append("'{0}'".format(value))
  81 + else:
  82 + values.append(str(value))
  83 +
  84 + sql = '{0} {1} VALUES {2}'.format(sql, str(columns).replace("'", ''), \
  85 + str(values).replace('"', '')).replace('[','(').replace(']',')')
  86 + cur = self.con.cursor()
  87 + cur.execute(sql)
  88 + self.con.commit()
  89 +
  90 + def obterProxyList(self):
  91 + cur = self.con.cursor()
  92 + proxyDict = {}
  93 + for e in cur.execute("SELECT id, proxy, port, user, password, exceptions FROM tb_proxy"):
  94 + proxyDict[e[0]] = {'proxy':e[1], 'port':e[2], 'user':e[3], 'password':e[4], 'exceptions':e[5] }
  95 + return proxyDict
  96 +
  97 +
  98 + def save(self):
  99 + self.con.commit()
  100 +
  101 + def close(self):
  102 + self.con.close()
  103 +
  104 +PROJECT_ROOT_PATH = os.path.realpath(os.path.dirname(__file__))
  105 +metadadosDB = ProxyDB(PROJECT_ROOT_PATH, 'proxy.db')
  106 +
  107 +def validaEntradaSN(msg):
  108 + while True:
  109 + var = raw_input(msg)
  110 + if var.upper() == 'S':
  111 + return True
  112 + elif var.upper() == 'N':
  113 + return False
  114 +
  115 +def validaEntradaTexto(msg):
  116 + while True:
  117 + var = raw_input(msg)
  118 + if len(var) > 0:
  119 + return var
  120 +
  121 +def validaEntradaNumero(msg):
  122 + while True:
  123 + var = raw_input(msg)
  124 + if len(var) > 0:
  125 + try:
  126 + int(var)
  127 + return var
  128 + except:
  129 + print 'O valor deve ser do tipo interio!'
  130 + return None
  131 +
  132 +def insertProxy():
  133 + continua = True
  134 + proxyDict = {}
  135 + while continua :
  136 + proxyDict['proxy'] = validaEntradaTexto("Informe o proxy: ")
  137 + proxyDict['port'] = validaEntradaNumero("Informe a porta: ")
  138 + if validaEntradaSN("Seu proxy requer autenticação? (S ou N)\n>> "):
  139 + proxyDict['user'] = validaEntradaTexto("Informe o usuário: ")
  140 + proxyDict['password'] = validaEntradaTexto("Informe a senha: ")
  141 + if validaEntradaSN("Você quer cadastrar exceções? (S ou N)\n>> "):
  142 + proxyDict['exceptions'] = validaEntradaTexto("Informe as exceções: ")
  143 +
  144 + for i in proxyDict:
  145 + print i, '\t- ', proxyDict[i]
  146 +
  147 + msg = "Esta é a configurção de proxy que será utilizada:\nEla está correta? (S ou N)\n>>"
  148 + if validaEntradaSN(msg):
  149 + continua = False
  150 + metadadosDB.inserirItem(TABELA_ORIGINAL, proxyDict)
  151 + '''serversPath = os.path.join(PROJECT_ROOT_PATH,'.subversion/servers')
  152 + serversFile = open(serversPath,'a+b')
  153 + serversFile.write("http-proxy-host = {0}\n".format(proxy))
  154 + serversFile.write("http-proxy-port = {0}\n".format(porta))
  155 + if usuario:
  156 + serversFile.write("http-proxy-username = {0}\n".format(usuario))
  157 + serversFile.write("http-proxy-password = {0}\n".format(senha))
  158 + serversFile.close()
  159 + atualiza_info_file = open(atualizaPath,'w')
  160 + atualiza_info_file.close()'''
  161 +
  162 + else:
  163 + for i in proxyDict.keys():
  164 + proxyDict[i] = ''
  165 + return proxyDict
  166 +
  167 +def utilizarProxy(proxyDict):
  168 + serversPath = os.path.join(PROJECT_ROOT_PATH,'.subversion/servers')
  169 + serversFile = open(serversPath,'w')
  170 + serversFile.write("[global]\n")
  171 +
  172 + fileDict = {'proxy': 'http-proxy-host = ',
  173 + 'port':'http-proxy-port = ',
  174 + 'user': 'http-proxy-username = ',
  175 + 'password':'http-proxy-username = ',
  176 + 'exceptions':'http-proxy-password = '}
  177 + if proxyDict:
  178 + for k,v in proxyDict.items():
  179 + if v:
  180 + serversFile.write(fileDict[k] + v + '\n')
  181 + serversFile.close()
  182 + atualiza()
  183 +
  184 +
  185 +def proxy():
  186 +
  187 + texto = "Se você utiliza um proxy para acessar a web é necessário que o proxy seja configurado para fazer o update.\
  188 + Caso você configure o proxy e o update não seja executado com sucesso, procure o seu administrador da rede e informe a ele o seguinte:\n\
  189 + 1 - Arquivo local que armazena as configurações do proxy para o svn: {0}\n\
  190 + 2 - É preciso que o servidor proxy suporte os seguintes métodos: PROPFIND, REPORT, MERGE, MKACTIVITY, CHECKOUT.\n\
  191 + 3 - Mais informações: http://subversion.apache.org/faq.html#proxy\n\n".format(os.path.join(PROJECT_ROOT_PATH,'.subversion/servers'))
  192 +
  193 + print texto
  194 +
  195 +
  196 + a = metadadosDB.obterProxyList()
  197 + print 'Escolha o que fazer:'
  198 + print '-1 - para restaurar as configurações iniciais;'
  199 + print ' 0 - para cadastrar um proxy novo;'
  200 + print ' Ou Digite o numero de um proxy cadastrado, caso exista.\n'
  201 +
  202 + if len(a):
  203 + print 'Proxies disponíveis:'
  204 + for i in a:
  205 + print i,' - ', a[i]['proxy'],a[i]['port'],a[i]['user'],a[i]['password'],a[i]['exceptions']
  206 + metadadosDB.close()
  207 +
  208 + var = int(validaEntradaNumero(">>"))
  209 +
  210 + proxyDict = None
  211 + if var == 0:
  212 + proxyDict = insertProxy()
  213 +
  214 + elif var == -1:
  215 + proxyDict = None
  216 + else:
  217 + if var in a:
  218 + proxyDict = a[var]
  219 + else:
  220 + print 'Opção inválida!'
  221 + return
  222 + utilizarProxy(proxyDict)
  223 +
  224 +def atualiza():
  225 + os.chdir('/var/www')
  226 + subprocess.call(["svn","update"], stdout=0)
  227 +
  228 +if __name__ == '__main__':
  229 + continua = True
  230 + while continua :
  231 + print 'Opções:'
  232 + print '0 - Atualizar:'
  233 + print '1 - Configurar Proxy e Atualizar:'
  234 + print '2 - Sair:'
  235 + var = int(validaEntradaNumero("Escolha: "))
  236 + if var == 0:
  237 + atualiza()
  238 + elif var == 1:
  239 + proxy()
  240 + elif var == 2:
  241 + continua = False
  242 +
  243 + continua = False
  244 + time.sleep(5)
  245 +
pacotes/proxy.db 0 → 100644
No preview for this file type