internlm/SWE-Fixer-Train-110K huggingface dataset:
Repository: interlegis/sapl

Issue:
Filtrar as Coligações no cadastro de Mandato
<!--- Forneça um resumo geral da _issue_ no título acima -->

## Comportamento Esperado
<!--- Se você está descrevendo um _bug_, conte-nos o que deveria acontecer. -->
<!--- Se você está sugerindo uma mudança/melhoria, conte-nos como deve funcionar. -->
Na caixa de seleção de coligação (criação ou edição de Mandato), apresentar somente as coligações disponíveis para o cadastro.

## Comportamento Atual
<!--- Se está descrevendo um bug, conte-nos o que acontece em vez do comportamento esperado. -->
<!--- Se está sugerindo uma mudança/melhoria, explique a diferença com o comportamento atual. -->
As coligações não são filtradas.







Discussion:

Resolving patch:
diff --git a/sapl/parlamentares/urls.py b/sapl/parlamentares/urls.py
--- a/sapl/parlamentares/urls.py
+++ b/sapl/parlamentares/urls.py
@@ -1,6 +1,7 @@
 from django.conf.urls import include, url
 
 from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud,
+                                      coligacao_legislatura,
                                       ComposicaoColigacaoCrud, DependenteCrud,
                                       FiliacaoCrud, FrenteCrud, FrenteList,
                                       LegislaturaCrud, MandatoCrud,
@@ -45,6 +46,9 @@
     url(r'^parlamentar/vincular-parlamentar/$',
         VincularParlamentarView.as_view(), name='vincular_parlamentar'),
 
+    url(r'^parlamentar/coligacao-legislatura/',
+        coligacao_legislatura, name="coligacao_legislatura"),
+
     url(r'^sistema/coligacao/',
         include(ColigacaoCrud.get_urls() +
                 ComposicaoColigacaoCrud.get_urls())),    
diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py
--- a/sapl/parlamentares/views.py
+++ b/sapl/parlamentares/views.py
@@ -312,6 +312,17 @@ def get_context_data(self, **kwargs):
             return context
 
 
+def coligacao_legislatura(request):
+    try:
+        coligacoes = Coligacao.objects.filter(legislatura=request.GET['legislatura']).order_by('nome')
+    except:
+        coligacoes = []
+
+    lista_coligacoes = [(coligacao.id, str(coligacao)) for coligacao in coligacoes]
+
+    return JsonResponse({'coligacoes': lista_coligacoes})
+
+
 def json_date_convert(date):
     """
     :param date: recebe a data de uma chamada ajax no formato de
@@ -1124,4 +1135,4 @@ def get_sessoes_legislatura(request):
     for s in SessaoLegislativa.objects.filter(legislatura_id=legislatura_id):
         json_response['sessoes_legislativas'].append( (s.id, str(s)) )
 
-    return JsonResponse(json_response)
\ No newline at end of file
+    return JsonResponse(json_response)


Test patch:
Repository: interlegis/sapl

Issue:
Tamanho máximo da sigla de um partido
<!--- Forneça um resumo geral da _issue_ no título acima -->

## Comportamento Atual
<!--- Se está descrevendo um bug, conte-nos o que acontece em vez do comportamento esperado. -->
<!--- Se está sugerindo uma mudança/melhoria, explique a diferença com o comportamento atual. -->
Não é possível adicionar uma sigla com mais de 9 caracteres.

## Possível Solução
<!--- Não é obrigatório, mas sugira uma possível correção/razão para o bug -->
<!--- ou ideias de como implementar a adição/mudança. -->
Aumentar o tamanho máximo.

## Contexto
<!--- Como esse problema o afeta? O que você está tentando realizar? -->
<!--- Fornecer o contexto nos ajuda a encontrar uma solução que seja mais útil no mundo real -->
Solicitação de Usuário ([Chamado #434726](https://suporte.interlegis.leg.br/scp/tickets.php?id=35785))




Discussion:

Resolving patch:
diff --git a/sapl/parlamentares/migrations/0031_auto_20200407_1406.py b/sapl/parlamentares/migrations/0031_auto_20200407_1406.py
new file mode 100644
--- /dev/null
+++ b/sapl/parlamentares/migrations/0031_auto_20200407_1406.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-04-07 17:06
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('parlamentares', '0030_auto_20190613_1133'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='partido',
+            name='sigla',
+            field=models.CharField(max_length=20, verbose_name='Sigla'),
+        ),
+    ]
diff --git a/sapl/parlamentares/models.py b/sapl/parlamentares/models.py
--- a/sapl/parlamentares/models.py
+++ b/sapl/parlamentares/models.py
@@ -104,7 +104,7 @@ def logo_upload_path(instance, filename):
 
 @reversion.register()
 class Partido(models.Model):
-    sigla = models.CharField(max_length=9, verbose_name=_('Sigla'))
+    sigla = models.CharField(max_length=20, verbose_name=_('Sigla'))
     nome = models.CharField(max_length=50, verbose_name=_('Nome'))
     data_criacao = models.DateField(
         blank=True, null=True, verbose_name=_('Data Criação'))


Test patch:
Repository: interlegis/sapl

Issue:
Períodos de parlamentares sumiram
## Comportamento Esperado
Devem aparecer todos os períodos dos parlamentares, correspondentes às legislaturas.

## Comportamento Atual
Aparecem apenas da 6ª legislatura à atual.

Passos para Reproduzir (para bugs)
https://sapl.agudo.rs.leg.br/parlamentar/

## Contexto
Pesquisa de parlamentares por legislatura.

## Imagens do Ocorrido
![Captura de tela de 2020-04-22 08-08-12](https://user-images.githubusercontent.com/19169882/79975386-4579c300-8471-11ea-95b9-96459516774f.png)

## Seu Ambiente
Versão usada (Release): 3.1.160-RC11
Nome e versão do navegador: Versão 80.0.3987.163 (Versão oficial)
Nome e versão do Sistema Operacional (desktop ou mobile): Ubuntu 16.04 64 bits




Discussion:

Resolving patch:
diff --git a/sapl/api/pagination.py b/sapl/api/pagination.py
--- a/sapl/api/pagination.py
+++ b/sapl/api/pagination.py
@@ -8,6 +8,11 @@ class StandardPagination(pagination.PageNumberPagination):
     page_size_query_param = 'page_size'
     max_page_size = 50
 
+    def paginate_queryset(self, queryset, request, view=None):
+        if request.query_params.get('get_all', False) == 'true':
+            return None
+        return super().paginate_queryset(queryset, request, view=view)
+
     def get_paginated_response(self, data):
         try:
             previous_page_number = self.page.previous_page_number()


Test patch:
Repository: interlegis/sapl

Issue:
Não permitir que se altere campos rotulo_prefixo_texto e rotulo_sufixo_texto via interface admin
<!--- Forneça um resumo geral da _issue_ no título acima -->

## Comportamento Esperado
<!--- Se você está descrevendo um _bug_, conte-nos o que deveria acontecer. -->
<!--- Se você está sugerindo uma mudança/melhoria, conte-nos como deve funcionar. -->

## Comportamento Atual
<!--- Se está descrevendo um bug, conte-nos o que acontece em vez do comportamento esperado. -->
<!--- Se está sugerindo uma mudança/melhoria, explique a diferença com o comportamento atual. -->

## Possível Solução
<!--- Não é obrigatório, mas sugira uma possível correção/razão para o bug -->
<!--- ou ideias de como implementar a adição/mudança. -->

## Passos para Reproduzir (para bugs)
<!--- Forneça um link para um exemplo, ou um conjunto de passos inequívocos -->
<!--- para reproduzir esse bug. Inclua código para reproduzir, se relevante. -->
1.
2.
3.
4.

## Contexto
<!--- Como esse problema o afeta? O que você está tentando realizar? -->
<!--- Fornecer o contexto nos ajuda a encontrar uma solução que seja mais útil no mundo real -->

## Imagens do Ocorrido
<!--- Representação visual em vídeo ou imagem do ocorrido -->
<!--- Se está descrevendo um bug poste imagens ou vídeos na reprodução do bug citado, caso se aplique -->

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_):
* Nome e versão do navegador:
* Nome e versão do Sistema Operacional (desktop ou mobile):
* Link para o seu projeto (Caso de fork deste projeto):



Discussion:

Resolving patch:
diff --git a/sapl/compilacao/admin.py b/sapl/compilacao/admin.py
--- a/sapl/compilacao/admin.py
+++ b/sapl/compilacao/admin.py
@@ -1,3 +1,12 @@
+from django.contrib import admin
+from sapl.compilacao.models import TipoDispositivo
 from sapl.utils import register_all_models_in_admin
 
 register_all_models_in_admin(__name__)
+admin.site.unregister(TipoDispositivo)
+
+
+@admin.register(TipoDispositivo)
+class TipoDispositivoAdmin(admin.ModelAdmin):
+    readonly_fields = ("rotulo_prefixo_texto", "rotulo_sufixo_texto",)
+    list_display = [f.name for f in TipoDispositivo._meta.fields if f.name != 'id']


Test patch:
Repository: interlegis/sapl

Issue:
Ao colocar o parlamentar como inativo, automaticamente deixar seu usuário inativo também.
<!--- Forneça um resumo geral da _issue_ no título acima -->
Hoje quando deixo um parlamentar inativo, isso não reflete no usuário associado a ele.

## Comportamento Esperado
<!--- Se você está descrevendo um _bug_, conte-nos o que deveria acontecer. -->
<!--- Se você está sugerindo uma mudança/melhoria, conte-nos como deve funcionar. -->
Inativar o usuário do parlamentar, quando esse parlamentar for colocado como inativo.

## Comportamento Atual
<!--- Se está descrevendo um bug, conte-nos o que acontece em vez do comportamento esperado. -->
<!--- Se está sugerindo uma mudança/melhoria, explique a diferença com o comportamento atual. -->
Hoje ao editar o parlamentar e colocá-lo como inativo, seu usuário continua ativo.

## Possível Solução
<!--- Não é obrigatório, mas sugira uma possível correção/razão para o bug -->
<!--- ou ideias de como implementar a adição/mudança. -->

## Passos para Reproduzir (para bugs)
<!--- Forneça um link para um exemplo, ou um conjunto de passos inequívocos -->
<!--- para reproduzir esse bug. Inclua código para reproduzir, se relevante. -->
1.
2.
3.
4.

## Contexto
<!--- Como esse problema o afeta? O que você está tentando realizar? -->
<!--- Fornecer o contexto nos ajuda a encontrar uma solução que seja mais útil no mundo real -->

## Imagens do Ocorrido
<!--- Representação visual em vídeo ou imagem do ocorrido -->
<!--- Se está descrevendo um bug poste imagens ou vídeos na reprodução do bug citado, caso se aplique -->

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_):
* Nome e versão do navegador:
* Nome e versão do Sistema Operacional (desktop ou mobile):
* Link para o seu projeto (Caso de fork deste projeto):



Discussion:

Resolving patch:
diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py
--- a/sapl/parlamentares/forms.py
+++ b/sapl/parlamentares/forms.py
@@ -216,6 +216,17 @@ class Meta:
             'biografia': forms.Textarea(
                 attrs={'id': 'texto-rico'})}
 
+    def save(self, commit=True):
+        parlamentar = super().save()
+        autor = parlamentar.autor.first()
+        usuario = autor.user if autor else None
+
+        if autor and usuario:
+            usuario.is_active = parlamentar.ativo
+            usuario.save()
+
+        return parlamentar
+
 
 class ParlamentarFilterSet(django_filters.FilterSet):
     nome_parlamentar = django_filters.CharFilter(


Test patch:
Repository: interlegis/sapl

Issue:
Erro ao adicionar participação em comissão
<!--- Forneça um resumo geral da _issue_ no título acima -->
Adicionar participação quebrando em algumas casa, Issue derivada do ticket [489797](https://suporte.interlegis.leg.br/scp/tickets.php?id=36725)

## Comportamento Atual
<!--- Se está descrevendo um bug, conte-nos o que acontece em vez do comportamento esperado. -->
<!--- Se está sugerindo uma mudança/melhoria, explique a diferença com o comportamento atual. -->
![Captura de tela de 2020-06-12 11-57-06](https://user-images.githubusercontent.com/20913134/84521203-0d417480-acab-11ea-89cd-f5511111f27b.png)

## Possível Solução
<!--- Não é obrigatório, mas sugira uma possível correção/razão para o bug -->
<!--- ou ideias de como implementar a adição/mudança. -->

## Passos para Reproduzir (para bugs)
<!--- Forneça um link para um exemplo, ou um conjunto de passos inequívocos -->
<!--- para reproduzir esse bug. Inclua código para reproduzir, se relevante. -->
1.
2.
3.
4.

## Contexto
<!--- Como esse problema o afeta? O que você está tentando realizar? -->
<!--- Fornecer o contexto nos ajuda a encontrar uma solução que seja mais útil no mundo real -->

## Imagens do Ocorrido
<!--- Representação visual em vídeo ou imagem do ocorrido -->
<!--- Se está descrevendo um bug poste imagens ou vídeos na reprodução do bug citado, caso se aplique -->

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_):
* Nome e versão do navegador:
* Nome e versão do Sistema Operacional (desktop ou mobile):
* Link para o seu projeto (Caso de fork deste projeto):



Discussion:

Resolving patch:
diff --git a/sapl/comissoes/forms.py b/sapl/comissoes/forms.py
--- a/sapl/comissoes/forms.py
+++ b/sapl/comissoes/forms.py
@@ -10,6 +10,7 @@
 from django.db.models import Q
 from django.forms import ModelForm
 from django.utils.translation import ugettext_lazy as _
+from django.utils import timezone
 
 from sapl.base.models import Autor, TipoAutor
 from sapl.comissoes.models import (Comissao, Composicao,
@@ -142,7 +143,6 @@ def __init__(self, user=None, **kwargs):
             values_list('parlamentar',
                         flat=True
                         ).distinct()
-
         qs = Parlamentar.objects.filter(id__in=parlamentares).distinct().\
             exclude(id__in=id_part)
         eligible = self.verifica()
@@ -184,7 +184,7 @@ def clean(self):
     def create_participacao(self):
         composicao = Composicao.objects.get(id=self.initial['parent_pk'])
         data_inicio_comissao = composicao.periodo.data_inicio
-        data_fim_comissao = composicao.periodo.data_fim
+        data_fim_comissao = composicao.periodo.data_fim if composicao.periodo.data_fim else timezone.now()
         q1 = Q(data_fim_mandato__isnull=False,
                data_fim_mandato__gte=data_inicio_comissao)
         q2 = Q(data_inicio_mandato__gte=data_inicio_comissao) \


Test patch:
Repository: interlegis/sapl

Issue:
Alteração de Ementa e Indexação de norma registrada ao inserir dados da matéria originária
## Comportamento Esperado
Para norma existente, ao editar seus dados indicando a matéria que a originou, deveria haver um aviso de que Emenda e Indexação da norma seriam alteradas e opção de manter as já cadastradas.

## Comportamento Atual
O sistema está alterando Ementa e Indexação da norma para as da matéria indicada. Os desavisados não percebem isso e pode ser feita alteração indevida. Nem sempre tais campos são iguais aos da matéria. No exemplo do gif abaixo a matéria original já está cadastrada, mas quando não há este dado ocorre o mesmo.


## Passos para Reproduzir (para bugs)
https://sapl.agudo.rs.leg.br/sessao/2821/ordemdia
https://sapl.agudo.rs.leg.br/sessao/2821/resumo
https://sapl.agudo.rs.leg.br/relatorios/2821/sessao-plenaria-pdf

## Contexto
Edição de dados de norma existente que indica a matéria legislativa que a originou.
## Imagens do Ocorrido
![edicao_dados_materia_original](https://user-images.githubusercontent.com/19169882/84782510-7af8e380-afbe-11ea-9d38-9878a8c8edaf.gif)

## Seu Ambiente
Versão usada (Release): 3.1.161-RC2
Nome e versão do navegador: Versão 81.0.4044.138 (Versão oficial)
Nome e versão do Sistema Operacional (desktop ou mobile): Ubuntu 16.04 64 bits



Discussion:

Resolving patch:
diff --git a/sapl/norma/views.py b/sapl/norma/views.py
--- a/sapl/norma/views.py
+++ b/sapl/norma/views.py
@@ -258,7 +258,7 @@ class UpdateView(Crud.UpdateView):
 
         def get_initial(self):
             initial = super().get_initial()
-            norma = NormaJuridica.objects.get(id=self.kwargs['pk'])
+            norma = NormaJuridica.objects.select_related("materia").get(id=self.kwargs['pk'])
             if norma.materia:
                 initial['tipo_materia'] = norma.materia.tipo
                 initial['ano_materia'] = norma.materia.ano
@@ -267,9 +267,7 @@ def get_initial(self):
             return initial
 
         def form_valid(self, form):
-            norma_antiga = NormaJuridica.objects.get(
-                pk=self.kwargs['pk']
-            )
+            norma_antiga = NormaJuridica.objects.get(pk=self.kwargs['pk'])
 
             # Feito desta forma para que sejam materializados os assuntos
             # antigos


Test patch:
Repository: interlegis/sapl

Issue:
Erro Protocolar proposição somente com recibo
<!--- Forneça um resumo geral da _issue_ no título acima -->
Issue derivada dos tickets:  [649607](https://suporte.interlegis.leg.br/scp/tickets.php?id=36892) e [228181](https://suporte.interlegis.leg.br/scp/tickets.php?id=36888)
## Comportamento Esperado
<!--- Se você está descrevendo um _bug_, conte-nos o que deveria acontecer. -->
<!--- Se você está sugerindo uma mudança/melhoria, conte-nos como deve funcionar. -->
![Captura de tela de 2020-06-25 12-36-06](https://user-images.githubusercontent.com/20913134/85750955-89db4680-b6e0-11ea-81f2-b4432dafa863.png)

## Comportamento Atual
<!--- Se está descrevendo um bug, conte-nos o que acontece em vez do comportamento esperado. -->
<!--- Se está sugerindo uma mudança/melhoria, explique a diferença com o comportamento atual. -->

## Possível Solução
<!--- Não é obrigatório, mas sugira uma possível correção/razão para o bug -->
<!--- ou ideias de como implementar a adição/mudança. -->

## Passos para Reproduzir (para bugs)
<!--- Forneça um link para um exemplo, ou um conjunto de passos inequívocos -->
<!--- para reproduzir esse bug. Inclua código para reproduzir, se relevante. -->
1.
2.
3.
4.

## Contexto
<!--- Como esse problema o afeta? O que você está tentando realizar? -->
<!--- Fornecer o contexto nos ajuda a encontrar uma solução que seja mais útil no mundo real -->

## Imagens do Ocorrido
<!--- Representação visual em vídeo ou imagem do ocorrido -->
<!--- Se está descrevendo um bug poste imagens ou vídeos na reprodução do bug citado, caso se aplique -->

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_):
* Nome e versão do navegador:
* Nome e versão do Sistema Operacional (desktop ou mobile):
* Link para o seu projeto (Caso de fork deste projeto):



Discussion:

Resolving patch:
diff --git a/sapl/base/views.py b/sapl/base/views.py
--- a/sapl/base/views.py
+++ b/sapl/base/views.py
@@ -2020,9 +2020,15 @@ def form_valid(self, form):
             recibo_prop_atual = AppConfig.objects.last().receber_recibo_proposicao
             recibo_prop_novo = self.request.POST['receber_recibo_proposicao']
             if recibo_prop_novo == 'False' and recibo_prop_atual:
-                props = Proposicao.objects.filter(hash_code='')
+                props = Proposicao.objects.filter(hash_code='').exclude(data_envio__isnull=True)
                 for prop in props:
-                    self.gerar_hash(prop)
+                    try:
+                        self.gerar_hash(prop)
+                    except ValidationError as e:
+                        form.add_error('receber_recibo_proposicao',e)
+                        msg = _("Não foi possível mudar a configuração porque a Proposição {} não possui texto original vinculado!".format(prop))
+                        messages.error(self.request, msg)
+                        return super().form_invalid(form)
             return super().form_valid(form)
 
         def gerar_hash(self, inst):


Test patch:
Repository: interlegis/sapl

Issue:
Validação de Criação e Edição de Autores
<!--- Forneça um resumo geral da _issue_ no título acima -->

## Comportamento Esperado
<!--- Se você está descrevendo um _bug_, conte-nos o que deveria acontecer. -->
<!--- Se você está sugerindo uma mudança/melhoria, conte-nos como deve funcionar. -->
Validar o campo nome somente se for um autor do tipo que necessita do preenchimento do campo nome.

## Comportamento Atual
<!--- Se está descrevendo um bug, conte-nos o que acontece em vez do comportamento esperado. -->
<!--- Se está sugerindo uma mudança/melhoria, explique a diferença com o comportamento atual. -->
O campo nome é validado antes da distinção entre os tipos de autor.



Discussion:

Resolving patch:
diff --git a/sapl/base/forms.py b/sapl/base/forms.py
--- a/sapl/base/forms.py
+++ b/sapl/base/forms.py
@@ -668,16 +668,13 @@ def clean(self):
                 _('O Tipo do Autor deve ser selecionado.'))
 
         tipo = cd['tipo']
-
-        if 'nome' in cd and \
-                qs_autor.filter(nome=cd['nome']).exists():
-            raise ValidationError("Autor '%s' já existente!" % cd['nome'])
-
         if not tipo.content_type:
             if 'nome' not in cd or not cd['nome']:
                 self.logger.warn('Nome do Autor não informado.')
                 raise ValidationError(
                     _('O Nome do Autor deve ser informado.'))
+            elif qs_autor.filter(nome=cd['nome']).exists():
+                raise ValidationError("Autor '%s' já existente!" % cd['nome'])
         else:
             if 'autor_related' not in cd or not cd['autor_related']:
                 self.logger.warn(


Test patch:
Repository: interlegis/sapl

Issue:
Erro encontrado quando a audiência não possui matéria ligada.
<!--- Forneça um resumo geral da _issue_ no título acima -->
Erro encontrado quando a audiência não possui matéria ligada. Derivado do ticket [273270](https://suporte.interlegis.leg.br/scp/tickets.php?id=37122)



## Contexto
<!--- Como esse problema o afeta? O que você está tentando realizar? -->
<!--- Fornecer o contexto nos ajuda a encontrar uma solução que seja mais útil no mundo real -->

## Imagens do Ocorrido
<!--- Representação visual em vídeo ou imagem do ocorrido -->
<!--- Se está descrevendo um bug poste imagens ou vídeos na reprodução do bug citado, caso se aplique -->

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_):
* Nome e versão do navegador:
* Nome e versão do Sistema Operacional (desktop ou mobile):
* Link para o seu projeto (Caso de fork deste projeto):



Discussion:

Resolving patch:
diff --git a/sapl/audiencia/views.py b/sapl/audiencia/views.py
--- a/sapl/audiencia/views.py
+++ b/sapl/audiencia/views.py
@@ -38,8 +38,11 @@ def get_context_data(self, **kwargs):
                 coluna_materia = row[3] # se mudar a ordem de listagem mudar aqui
                 if coluna_materia[0]:
                     materia = audiencia_materia[row[0][0]]
-                    url_materia = reverse('sapl.materia:materialegislativa_detail',
-                                          kwargs={'pk': materia.id})
+                    if materia:
+                        url_materia = reverse('sapl.materia:materialegislativa_detail',
+                                              kwargs={'pk': materia.id})
+                    else:
+                        url_materia = None
                     row[3] = (coluna_materia[0], url_materia)
             return context
 


Test patch: