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

Issue:
Adicionar mais opções de turno de tramitação
Atualmente os turnos de tramitação são fixos. Nos foi solicitado adicionar mais um par de turnos.

## Comportamento Esperado
Permitir mais dois turnos (Deliberação e Votação urgente em primeiro e segundo turno).

## Comportamento Atual
Somente os turnos já definidos estão disponíveis para escolha.

## Possível Solução
Adicionar manualmente.

## Passos para Reproduzir (para bugs)
Manualmente.

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_): 3.1.143
* Nome e versão do navegador: Chrome
* Nome e versão do Sistema Operacional (desktop ou mobile): Linux
* Link para o seu projeto (Caso de fork deste projeto):



Discussion:

Resolving patch:
diff --git a/sapl/materia/migrations/0040_auto_20190211_1602.py b/sapl/materia/migrations/0040_auto_20190211_1602.py
new file mode 100644
--- /dev/null
+++ b/sapl/materia/migrations/0040_auto_20190211_1602.py
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.18 on 2019-02-11 18:02
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('materia', '0039_auto_20190209_2346'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='tramitacao',
+            name='turno',
+            field=models.CharField(blank=True, choices=[('P', 'Primeiro'), ('S', 'Segundo'), ('U', 'Único'), ('L', 'Suplementar'), ('F', 'Final'), ('A', 'Votação única em Regime de Urgência'), ('B', '1ª Votação'), ('C', '2ª e 3ª Votação'), ('D', 'Deliberação'), ('E', '1ª e 2ª votações em regime de urgência')], max_length=1, verbose_name='Turno'),
+        ),
+    ]
diff --git a/sapl/materia/models.py b/sapl/materia/models.py
--- a/sapl/materia/models.py
+++ b/sapl/materia/models.py
@@ -916,6 +916,9 @@ class Tramitacao(models.Model):
         ('A', 'votacao_unica', _('Votação única em Regime de Urgência')),
         ('B', 'primeira_votacao', _('1ª Votação')),
         ('C', 'segunda_terceira_votacao', _('2ª e 3ª Votação')),
+        ('D', 'deliberacao', _('Deliberação')),
+        ('E', 'primeira_segunda_votacao_urgencia', _('1ª e 2ª votações em regime de urgência'))
+
     )
 
     status = models.ForeignKey(StatusTramitacao, on_delete=models.PROTECT,


Test patch:
Repository: interlegis/sapl

Issue:
Parlamentares não ativos na opção de adicionar na mesa diretora
## 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. -->
Ao adicionar os membros da mesa aparecerem apenas os parlamentares ativos.

## 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. -->
"Prezad@s,

Quando vou preencher a composição da Mesa Diretora, no campo em que selecionamo os parlamentares, estão aparecendo os vereadores que fazem parte da Legislatura mas estão INATIVOS.
Em todos os demais select do SAPL aparecem apenas os vereadores ativos."
Retirado de pedido de usuário no OSTicket nº 354150

## 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. -->
Verificar se a legislatura é a legislatura atual, caso seja filtrar por parlamentares ativos, caso contrário não filtrar.

## Imagens do Ocorrido
<!--- Representação visual em vídeo ou imagem do ocorrido -->
<!--- Se está descrevendo um bug poste imagens ou vídeos na repordução do bug citado, caso se aplique -->
![image](https://user-images.githubusercontent.com/19825887/52808435-084bc100-3075-11e9-91a4-462919fbafb1.png)

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_): 3.1.143




Discussion:

Resolving patch:
diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py
--- a/sapl/parlamentares/views.py
+++ b/sapl/parlamentares/views.py
@@ -738,9 +738,9 @@ def get(self, request, *args, **kwargs):
         parlamentares_ocupados = [m.parlamentar for m in mesa]
         parlamentares_vagos = list(
             set(
-                [p.parlamentar for p in parlamentares]) - set(
+                [p.parlamentar for p in parlamentares if p.parlamentar.ativo]) - set(
                 parlamentares_ocupados))
-
+        parlamentares_vagos.sort(key=lambda x: x.nome_parlamentar)
         # Se todos os cargos estiverem ocupados, a listagem de parlamentares
         # deve ser renderizada vazia
         if not cargos_vagos:
@@ -808,6 +808,7 @@ def altera_field_mesa(request):
             [p.parlamentar for p in parlamentares]) - set(
             parlamentares_ocupados))
 
+    parlamentares_vagos.sort(key=lambda x: x.nome_parlamentar)
     lista_sessoes = [(s.id, s.__str__()) for s in sessoes]
     lista_composicao = [(c.id, c.parlamentar.__str__(),
                          c.cargo.__str__()) for c in composicao_mesa]


Test patch:
Repository: interlegis/sapl

Issue:
Sem acesso anônimo de Documento Acessório de Audiencia Pública 
<!--- Forneça um resumo geral da _issue_ no título acima -->

## Comportamento Esperado
Usuários anônimos poderem acessar documento acessório das Audiências Públicas 

## Comportamento Atual
Usuário anônimo não acessa a parte de "Documento Acessório" da Audiência Pública pedindo um login com a aplicação de documento administrativo "Restritiva", acredito que Audiência Pública não deveria se enquadrar nessa regra.

## 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. Com opção de Visibilidade de Documentos Administrativos "Restritiva" -Está deslogado - Institucional - Audiências Públicas - Acessar uma audiência cadastrada - clicar em Documento Acessório

<!-- ## Imagens do Ocorrido -->

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_): 3.1.143
* Nome e versão do navegador: Chrome
* Nome e versão do Sistema Operacional (desktop ou mobile): Windows 10



Discussion:
Criei uma nova issue com o segundo bug: https://github.com/interlegis/sapl/issues/2515.

Resolving patch:
diff --git a/sapl/audiencia/urls.py b/sapl/audiencia/urls.py
--- a/sapl/audiencia/urls.py
+++ b/sapl/audiencia/urls.py
@@ -1,11 +1,10 @@
 from django.conf.urls import include, url
-from sapl.audiencia.views import (index, AudienciaCrud,AnexoAudienciaPublicaCrud)
+from sapl.audiencia.views import (index, AudienciaCrud, AnexoAudienciaPublicaCrud)
 
 from .apps import AppConfig
 
 app_name = AppConfig.name
 
 urlpatterns = [
-    url(r'^audiencia/', include(AudienciaCrud.get_urls() +
-    							AnexoAudienciaPublicaCrud.get_urls())),
+    url(r'^audiencia/', include(AudienciaCrud.get_urls() + AnexoAudienciaPublicaCrud.get_urls())),
 ]
\ No newline at end of file
diff --git a/sapl/audiencia/views.py b/sapl/audiencia/views.py
--- a/sapl/audiencia/views.py
+++ b/sapl/audiencia/views.py
@@ -86,6 +86,7 @@ class AnexoAudienciaPublicaCrud(MasterDetailCrud):
     model = AnexoAudienciaPublica
     parent_field = 'audiencia'
     help_topic = 'numeracao_docsacess'
+    public = [RP_LIST, RP_DETAIL, ]
 
     class BaseMixin(MasterDetailCrud.BaseMixin):
         list_field_names = ['assunto']
@@ -104,7 +105,5 @@ def get_queryset(self):
             kwargs = {self.crud.parent_field: self.kwargs['pk']}
             return qs.filter(**kwargs).order_by('-data', '-id')
 
-    class DetailView(AudienciaPublicaMixin,
-                     MasterDetailCrud.DetailView):
+    class DetailView(AudienciaPublicaMixin, MasterDetailCrud.DetailView):
         pass
-    
\ No newline at end of file


Test patch:
Repository: interlegis/sapl

Issue:
Erro em tela de lista de parlamentares
"Bom dia,
Esta correndo erro inesperado quando selecionamos as 10,11,12,13 legislaturas no SAPL.
Erro inesperado 500!" 
Tirado do ticket nº 135248.

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_): 3.1.143


Discussion:

Resolving patch:
diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py
--- a/sapl/parlamentares/views.py
+++ b/sapl/parlamentares/views.py
@@ -594,7 +594,7 @@ def get_context_data(self, **kwargs):
                                       .format(legislatura.data_fim, legislatura.data_fim, legislatura.data_fim))
                     row[1] = (
                         'O Parlamentar possui duas filiações conflitantes',
-                        None)
+                        None, None)
 
                 # Caso encontre UMA filiação nessas condições
                 else:


Test patch:
Repository: interlegis/sapl

Issue:
Registro de tramitações em matérias anexadas
## Comportamento Esperado
As matérias, depois de anexadas, devem passar a receber as tramitações das matérias anexadoras, pelo menos as de fim de tramitação.

## Comportamento Atual
Isso não ocorre, deve-se dar tramitação em ambas.

## Contexto
Registro de tramitações.

## Imagens do Ocorrido
![captura de tela de 2018-12-11 10-34-58](https://user-images.githubusercontent.com/19169882/49801190-a5fed900-fd30-11e8-8db3-7261bd79d14e.png)
![captura de tela de 2018-12-11 10-35-35](https://user-images.githubusercontent.com/19169882/49801207-b1520480-fd30-11e8-9531-cc923a13b7b6.png)

## Seu Ambiente
Versão usada (Release): 3.1.137
Nome e versão do navegador: Versão 70.0.3538.77 (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/materia/forms.py b/sapl/materia/forms.py
--- a/sapl/materia/forms.py
+++ b/sapl/materia/forms.py
@@ -495,6 +495,20 @@ def clean(self):
 
         return cleaned_data
 
+    @transaction.atomic
+    def save(self, commit=True):
+        tramitacao = super(TramitacaoForm, self).save(commit)
+        materia = tramitacao.materia
+        for ma in materia.anexadas.all():
+            if not ma.tramitacao_set.all() \
+                    or ma.tramitacao_set.last().unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local:
+                tramitacao_nova = tramitacao
+                tramitacao_nova.pk = None
+                tramitacao_nova.materia = ma
+                tramitacao_nova.save()
+
+        return tramitacao
+
 
 class TramitacaoUpdateForm(TramitacaoForm):
     unidade_tramitacao_local = forms.ModelChoiceField(


Test patch:
Repository: interlegis/sapl

Issue:
Senha de usuários com tamanho mínimo inconsistente
<!--- 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. -->
Manter um padrão para o tamanho mínimo da senha dos usuários.

## 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. -->
Atualmente, é possível criar um novo usuário no sistema com uma senha menor do que 6 caracteres. Porém, ao tentar alterar a senha de um usuário já existente, o sistema não permite que a senha tenha menos que 6 caracteres.



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
@@ -64,19 +64,46 @@ def get_roles():
 
 class UsuarioCreateForm(ModelForm):
     logger = logging.getLogger(__name__)
-    username = forms.CharField(required=True, label="Nome de usuário",
-                               max_length=30)
-    firstname = forms.CharField(required=True, label="Nome", max_length=30)
-    lastname = forms.CharField(required=True, label="Sobrenome", max_length=30)
-    password1 = forms.CharField(required=True, widget=forms.PasswordInput,
-                                label='Senha', max_length=128)
-    password2 = forms.CharField(required=True, widget=forms.PasswordInput,
-                                label='Confirmar senha', max_length=128)
-    user_active = forms.ChoiceField(required=False, choices=YES_NO_CHOICES,
-                                    label="Usuário ativo?", initial='True')
-
+    username = forms.CharField(
+        required=True,
+        label="Nome de usuário",
+        max_length=30
+    )
+    firstname = forms.CharField(
+        required=True,
+        label="Nome",
+        max_length=30
+    )
+    lastname = forms.CharField(
+        required=True,
+        label="Sobrenome",
+        max_length=30
+    )
+    password1 = forms.CharField(
+        required=True,
+        widget=forms.PasswordInput,
+        label='Senha',
+        min_length=6,
+        max_length=128
+    )
+    password2 = forms.CharField(
+        required=True,
+        widget=forms.PasswordInput,
+        label='Confirmar senha',
+        min_length=6,
+        max_length=128
+    )
+    user_active = forms.ChoiceField(
+        required=True,
+        choices=YES_NO_CHOICES,
+        label="Usuário ativo?",
+        initial='True'
+    )
     roles = forms.MultipleChoiceField(
-        required=True, widget=forms.CheckboxSelectMultiple(), choices=get_roles)
+        required=True,
+        widget=forms.CheckboxSelectMultiple(),
+        choices=get_roles
+    )
 
     class Meta:
         model = get_user_model()


Test patch:
Repository: interlegis/sapl

Issue:
Corrigir caixa de busca do lexml com link quebrado
http://sapl3.interlegis.leg.br/generico/lexml_pesquisar
Verificar com @edwardoliveira qual caminho tomar quanto a isso!

![image](https://user-images.githubusercontent.com/9630623/53385017-be5bb880-395b-11e9-8e41-945cacc49a69.png)



Discussion:

Resolving patch:
diff --git a/sapl/lexml/urls.py b/sapl/lexml/urls.py
--- a/sapl/lexml/urls.py
+++ b/sapl/lexml/urls.py
@@ -1,6 +1,6 @@
 from django.conf.urls import include, url
 
-from sapl.lexml.views import LexmlProvedorCrud, LexmlPublicadorCrud, lexml_request
+from sapl.lexml.views import LexmlProvedorCrud, LexmlPublicadorCrud, lexml_request, request_search
 
 from .apps import AppConfig
 
@@ -11,5 +11,7 @@
         include(LexmlProvedorCrud.get_urls())),
     url(r'^sistema/lexml/publicador/',
         include(LexmlPublicadorCrud.get_urls())),
-    url(r'^sistema/lexml', lexml_request, name='lexml_endpoint')
+    url(r'^sistema/lexml/request_search/(?P<keyword>[\w\-]+)/', request_search, name='lexml_search'),
+    url(r'^sistema/lexml', lexml_request, name='lexml_endpoint'),
+
 ]
diff --git a/sapl/lexml/views.py b/sapl/lexml/views.py
--- a/sapl/lexml/views.py
+++ b/sapl/lexml/views.py
@@ -1,4 +1,5 @@
 from django.http import HttpResponse
+from django.shortcuts import render
 
 from sapl.crud.base import CrudAux
 from sapl.lexml.OAIServer import OAIServerFactory, get_config
@@ -16,3 +17,6 @@ def lexml_request(request):
                                   'metadataPrefix': request.GET.get('metadataPrefix', 'oai_lexml')})
     response = r.decode('UTF-8')
     return HttpResponse(response, content_type='text/xml')
+
+def request_search(request, keyword):
+    return render(request,"lexml/resultado-pesquisa.html",{"keyword":keyword})
\ No newline at end of file


Test patch:
Repository: interlegis/sapl

Issue:
Relatório Fim de Prazo de Tramitações: nomes de campos inválidos
## Comportamento Esperado
Devem parecer os nomes dos campos Localização e Status.

## Comportamento Atual
Em ambos aparece "invalid name".

## Passos para Reproduzir (para bugs)
https://sapl.agudo.rs.leg.br/sistema/relatorios/data-fim-prazo-tramitacoes

## Contexto
Tela de geração do relatório Fim de Prazo de Tramitações.

## Imagens do Ocorrido
![captura de tela de 2019-02-28 15-35-07](https://user-images.githubusercontent.com/19169882/53589766-00107d00-3b6f-11e9-96dc-7004109e4282.png)

## Seu Ambiente
Versão usada (Release): 3.1.146
Nome e versão do navegador: Versão 71.0.3578.98 (Versão oficial)
Nome e versão do Sistema Operacional (desktop ou mobile): Ubuntu 16.04 64 bits
Relatório Fim de Prazo de Tramitações: nomes de campos inválidos
## Comportamento Esperado
Devem parecer os nomes dos campos Localização e Status.

## Comportamento Atual
Em ambos aparece "invalid name".

## Passos para Reproduzir (para bugs)
https://sapl.agudo.rs.leg.br/sistema/relatorios/data-fim-prazo-tramitacoes

## Contexto
Tela de geração do relatório Fim de Prazo de Tramitações.

## Imagens do Ocorrido
![captura de tela de 2019-02-28 15-35-07](https://user-images.githubusercontent.com/19169882/53589766-00107d00-3b6f-11e9-96dc-7004109e4282.png)

## Seu Ambiente
Versão usada (Release): 3.1.146
Nome e versão do navegador: Versão 71.0.3578.98 (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/base/forms.py b/sapl/base/forms.py
--- a/sapl/base/forms.py
+++ b/sapl/base/forms.py
@@ -943,7 +943,9 @@ def __init__(self, *args, **kwargs):
             *args, **kwargs)
 
         self.filters['tipo'].label = 'Tipo de Matéria'
-
+        self.filters['tramitacao__unidade_tramitacao_local'].label = 'Unidade de tramitação local'
+        self.filters['tramitacao__status'].label = 'Status de tramitação'
+        
         row1 = to_row([('tramitacao__data_fim_prazo', 12)])
         row2 = to_row(
             [('tipo', 4),


Test patch:
Repository: interlegis/sapl

Issue:
Campo Autor de Acessório em Lote não pode passar de 50 caracteres
<!--- 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. -->
Apresentar um erro indicando que o campo autor não pode ter mais de 50 caracteres.
## 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 sistema apresenta um erro 500.

## 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. Em acessório em lote tentar criar os acessórios com autor com mais de 50 caracteres

## 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 -->
Usuários acham que tem erro no sistema.

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_):3.1.147


Discussion:

Resolving patch:
diff --git a/sapl/materia/views.py b/sapl/materia/views.py
--- a/sapl/materia/views.py
+++ b/sapl/materia/views.py
@@ -2021,6 +2021,11 @@ def post(self, request, *args, **kwargs):
 
         tz = timezone.get_current_timezone()
 
+        if len(request.POST['autor']) > 50:
+            msg = _('Autor tem que ter menos do que 50 caracteres.')
+            messages.add_message(request, messages.ERROR, msg)
+            return self.get(request, self.kwargs)
+
         for materia_id in marcadas:
             doc = DocumentoAcessorio()
             doc.materia_id = materia_id


Test patch:
Repository: interlegis/sapl

Issue:
Subnav da tela Adicionar Várias Matérias não está aparecendo
<!--- 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. -->
A subnav deveria aparecer, assim o usuário pode ir para qualquer tela da sessão.

## 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. -->
Subnav não está aparecendo.

## 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. Ir em Sessão Plenária
2. Escolher alguma Sessão
3. Em Matérias do Expediente ou da Ordem do Dia
4. Adicionar várias matérias

## 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 -->
Adicionar várias matérias na ordem do dia ou expediente.

## Imagens do Ocorrido
<!--- Representação visual em vídeo ou imagem do ocorrido -->
<!--- Se está descrevendo um bug poste imagens ou vídeos na repordução do bug citado, caso se aplique -->
![Screenshot from 2019-03-18 12-10-54](https://user-images.githubusercontent.com/20192488/54540728-43445b80-4977-11e9-8fc6-cbb3e6a483ae.png)



Discussion:

Resolving patch:
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -3079,8 +3079,9 @@ def get_filterset_kwargs(self, filterset_class):
     def get_context_data(self, **kwargs):
         context = super(MateriaLegislativaPesquisaView,
                         self).get_context_data(**kwargs)
-
+        
         context['title'] = _('Pesquisar Matéria Legislativa')
+        context['root_pk'] = self.kwargs['pk']
 
         self.filterset.form.fields['o'].label = _('Ordenação')
 


Test patch: