|  |  | @ -57,19 +57,14 @@ unique_constraints = [] | 
			
		
	
		
			
				
					|  |  |  | one_to_one_constraints = [] | 
			
		
	
		
			
				
					|  |  |  | primeira_vez = [] | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | name_sets = [set(m.__name__ for m in ac.get_models()) for ac in appconfs] | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | # apps do not overlap | 
			
		
	
		
			
				
					|  |  |  | name_sets = [set(m.__name__ for m in ac.get_models()) for ac in appconfs] | 
			
		
	
		
			
				
					|  |  |  | for s1 in name_sets: | 
			
		
	
		
			
				
					|  |  |  |     for s2 in name_sets: | 
			
		
	
		
			
				
					|  |  |  |         if s1 is not s2: | 
			
		
	
		
			
				
					|  |  |  |             assert not s1.intersection(s2) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | # apps include all legacy models | 
			
		
	
		
			
				
					|  |  |  | legacy_app = apps.get_app_config('legacy') | 
			
		
	
		
			
				
					|  |  |  | legacy_model_names = set(m.__name__ for m in legacy_app.get_models()) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | model_dict = {m.__name__: m for ac in appconfs for m in ac.get_models()} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | # RENAMES ################################################################### | 
			
		
	
	
		
			
				
					|  |  | @ -595,34 +590,6 @@ def fill_dados_basicos(): | 
			
		
	
		
			
				
					|  |  |  |     appconf.save() | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | # Uma anomalia no sapl 2.5 causa a duplicação de registros de votação. | 
			
		
	
		
			
				
					|  |  |  | # Essa duplicação deve ser eliminada para que não haja erro no sapl 3.1 | 
			
		
	
		
			
				
					|  |  |  | def excluir_registrovotacao_duplicados(): | 
			
		
	
		
			
				
					|  |  |  |     duplicatas_ids = RegistroVotacao.objects.values( | 
			
		
	
		
			
				
					|  |  |  |         'materia', 'ordem', 'expediente').annotate( | 
			
		
	
		
			
				
					|  |  |  |             Count('id')).order_by().filter(id__count__gt=1) | 
			
		
	
		
			
				
					|  |  |  |     duplicatas_queryset = RegistroVotacao.objects.filter( | 
			
		
	
		
			
				
					|  |  |  |         materia__in=[item['materia'] for item in duplicatas_ids]) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |     for dup in duplicatas_queryset: | 
			
		
	
		
			
				
					|  |  |  |         lista_dups = duplicatas_queryset.filter( | 
			
		
	
		
			
				
					|  |  |  |             materia=dup.materia, expediente=dup.expediente, ordem=dup.ordem) | 
			
		
	
		
			
				
					|  |  |  |         primeiro_registro = lista_dups[0] | 
			
		
	
		
			
				
					|  |  |  |         lista_dups = lista_dups.exclude(pk=primeiro_registro.pk) | 
			
		
	
		
			
				
					|  |  |  |         for objeto in lista_dups: | 
			
		
	
		
			
				
					|  |  |  |             if (objeto.pk > primeiro_registro.pk): | 
			
		
	
		
			
				
					|  |  |  |                 try: | 
			
		
	
		
			
				
					|  |  |  |                     objeto.delete() | 
			
		
	
		
			
				
					|  |  |  |                 except: | 
			
		
	
		
			
				
					|  |  |  |                     assert 0 | 
			
		
	
		
			
				
					|  |  |  |             else: | 
			
		
	
		
			
				
					|  |  |  |                 try: | 
			
		
	
		
			
				
					|  |  |  |                     primeiro_registro.delete() | 
			
		
	
		
			
				
					|  |  |  |                     primeiro_registro = objeto | 
			
		
	
		
			
				
					|  |  |  |                 except: | 
			
		
	
		
			
				
					|  |  |  |                     assert 0 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | def get_last_pk(model): | 
			
		
	
		
			
				
					|  |  |  |     last_value = model.objects.all().aggregate(Max('pk')) | 
			
		
	
		
			
				
					|  |  |  |     return last_value['pk__max'] or 0 | 
			
		
	
	
		
			
				
					|  |  | @ -729,9 +696,6 @@ class DataMigrator: | 
			
		
	
		
			
				
					|  |  |  |         info('Começando migração: %s...' % obj) | 
			
		
	
		
			
				
					|  |  |  |         self._do_migrate(obj) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         # info('Excluindo possíveis duplicações em RegistroVotacao...') | 
			
		
	
		
			
				
					|  |  |  |         # excluir_registrovotacao_duplicados() | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         # recria tipos de autor padrão que não foram criados pela migração | 
			
		
	
		
			
				
					|  |  |  |         cria_models_tipo_autor() | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | 
 |