mirror of https://github.com/interlegis/sapl.git
joao
1 year ago
15 changed files with 241 additions and 1 deletions
@ -0,0 +1 @@ |
|||
default_app_config = 'sapl.configuracao_impressao.apps.AppConfig' |
@ -0,0 +1,3 @@ |
|||
from django.contrib import admin |
|||
|
|||
# Register your models here. |
@ -0,0 +1,8 @@ |
|||
from django import apps |
|||
from django.utils.translation import ugettext_lazy as _ |
|||
|
|||
|
|||
class AppConfig(apps.AppConfig): |
|||
name = 'sapl.configuracao_impressao' |
|||
label = 'configuracao_impressao' |
|||
verbose_name = _('Configuração de Impressão') |
@ -0,0 +1,8 @@ |
|||
from django import forms |
|||
from .models import ConfiguracaoImpressao |
|||
|
|||
|
|||
class ConfiguracaoImpressaoForm(forms.ModelForm): |
|||
class Meta: |
|||
model = ConfiguracaoImpressao |
|||
fields = '__all__' |
@ -0,0 +1,35 @@ |
|||
# Generated by Django 2.2.28 on 2023-07-31 16:33 |
|||
|
|||
import django.core.validators |
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
initial = True |
|||
|
|||
dependencies = [ |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='ConfiguracaoImpressao', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('identificador', models.CharField(help_text='Identificador único da configuração', max_length=100, unique=True, validators=[django.core.validators.RegexValidator('^[A-Z]+$', 'Digite apenas letras maiúsculas.')])), |
|||
('nome', models.CharField(help_text='Nome da configuração de impressão', max_length=100)), |
|||
('descricao', models.TextField(blank=True, help_text='Descrição da configuração de impressão')), |
|||
('largura_pagina', models.PositiveIntegerField(default=800, help_text='Largura da página em pixels')), |
|||
('altura_pagina', models.PositiveIntegerField(default=1200, help_text='Altura da página em pixels')), |
|||
('margem_superior', models.PositiveIntegerField(default=20, help_text='Margem superior da página em pixels')), |
|||
('margem_inferior', models.PositiveIntegerField(default=20, help_text='Margem inferior da página em pixels')), |
|||
('margem_esquerda', models.PositiveIntegerField(default=20, help_text='Margem esquerda da página em pixels')), |
|||
('margem_direita', models.PositiveIntegerField(default=20, help_text='Margem direita da página em pixels')), |
|||
('cor_fundo', models.CharField(default='#FFFFFF', help_text='Cor de fundo da página em formato hexadecimal', max_length=7)), |
|||
('tamanho_fonte', models.PositiveIntegerField(default=12, help_text='Tamanho padrão da fonte em pixels')), |
|||
('cor_fonte', models.CharField(default='#000000', help_text='Cor padrão da fonte em formato hexadecimal', max_length=7)), |
|||
('fonte', models.CharField(default='Arial', help_text='Família da fonte utilizada', max_length=100)), |
|||
('espacamento_linhas', models.PositiveIntegerField(default=1, help_text='Espaçamento entre linhas em pixels')), |
|||
], |
|||
), |
|||
] |
@ -0,0 +1,49 @@ |
|||
# Generated by Django 2.2.28 on 2023-07-31 17:27 |
|||
|
|||
import django.core.validators |
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('configuracao_impressao', '0001_initial'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='configuracaoimpressao', |
|||
name='altura_pagina', |
|||
field=models.DecimalField(decimal_places=2, default=1200, help_text='Altura da página em pixels', max_digits=6), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='configuracaoimpressao', |
|||
name='identificador', |
|||
field=models.CharField(help_text='Identificador único da configuração', max_length=100, unique=True, validators=[django.core.validators.RegexValidator('^[A-Z0-9_-]+$', 'Digite apenas letras maiúsculas, números, underline (_) ou hífen (-).')]), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='configuracaoimpressao', |
|||
name='largura_pagina', |
|||
field=models.DecimalField(decimal_places=2, default=800, help_text='Largura da página em pixels', max_digits=6), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='configuracaoimpressao', |
|||
name='margem_direita', |
|||
field=models.DecimalField(decimal_places=2, default=20, help_text='Margem direita da página em pixels', max_digits=6), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='configuracaoimpressao', |
|||
name='margem_esquerda', |
|||
field=models.DecimalField(decimal_places=2, default=20, help_text='Margem esquerda da página em pixels', max_digits=6), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='configuracaoimpressao', |
|||
name='margem_inferior', |
|||
field=models.DecimalField(decimal_places=2, default=20, help_text='Margem inferior da página em pixels', max_digits=6), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='configuracaoimpressao', |
|||
name='margem_superior', |
|||
field=models.DecimalField(decimal_places=2, default=20, help_text='Margem superior da página em pixels', max_digits=6), |
|||
), |
|||
] |
@ -0,0 +1,18 @@ |
|||
# Generated by Django 2.2.28 on 2023-07-31 17:29 |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('configuracao_impressao', '0002_auto_20230731_1427'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AlterField( |
|||
model_name='configuracaoimpressao', |
|||
name='espacamento_linhas', |
|||
field=models.DecimalField(decimal_places=2, default=1, help_text='Espaçamento entre linhas em pixels', max_digits=6), |
|||
), |
|||
] |
@ -0,0 +1,52 @@ |
|||
from django.core.validators import RegexValidator |
|||
from django.db import models |
|||
|
|||
|
|||
class ConfiguracaoImpressao(models.Model): |
|||
# Campo para ser o identificador único da configuração de impressão |
|||
identificador = models.CharField( |
|||
max_length=100, |
|||
unique=True, |
|||
help_text="Identificador único da configuração", |
|||
validators=[ |
|||
RegexValidator( |
|||
r'^[A-Z0-9_-]+$', |
|||
'Digite apenas letras maiúsculas, números, underline (_) ou hífen (-).' |
|||
) |
|||
] |
|||
) |
|||
|
|||
# Campos para a configuração da página de impressão |
|||
nome = models.CharField(max_length=100, help_text="Nome da configuração de impressão") |
|||
# Campo de descrição para que o usuário possa identificar a configuração |
|||
descricao = models.TextField(blank=True, help_text="Descrição da configuração de impressão") |
|||
largura_pagina = models.DecimalField(max_digits=6, decimal_places=2, default=800, |
|||
help_text="Largura da página em pixels") |
|||
altura_pagina = models.DecimalField(max_digits=6, decimal_places=2, default=1200, |
|||
help_text="Altura da página em pixels") |
|||
margem_superior = models.DecimalField(max_digits=6, decimal_places=2, default=20, |
|||
help_text="Margem superior da página em pixels") |
|||
margem_inferior = models.DecimalField(max_digits=6, decimal_places=2, default=20, |
|||
help_text="Margem inferior da página em pixels") |
|||
margem_esquerda = models.DecimalField(max_digits=6, decimal_places=2, default=20, |
|||
help_text="Margem esquerda da página em pixels") |
|||
margem_direita = models.DecimalField(max_digits=6, decimal_places=2, default=20, |
|||
help_text="Margem direita da página em pixels") |
|||
cor_fundo = models.CharField(max_length=7, default="#FFFFFF", |
|||
help_text="Cor de fundo da página em formato hexadecimal") |
|||
tamanho_fonte = models.PositiveIntegerField(default=12, |
|||
help_text="Tamanho padrão da fonte em pixels") |
|||
cor_fonte = models.CharField(max_length=7, default="#000000", |
|||
help_text="Cor padrão da fonte em formato hexadecimal") |
|||
fonte = models.CharField(max_length=100, default="Arial", |
|||
help_text="Família da fonte utilizada") |
|||
espacamento_linhas = models.DecimalField(max_digits=6, decimal_places=2, default=1, |
|||
help_text="Espaçamento entre linhas em pixels") |
|||
|
|||
def __str__(self): |
|||
return self.nome |
|||
|
|||
class Meta: |
|||
verbose_name = "Configuração de Impressão" |
|||
verbose_name_plural = "Configurações de Impressão" |
|||
ordering = ['identificador', 'nome'] |
@ -0,0 +1,3 @@ |
|||
from django.test import TestCase |
|||
|
|||
# Create your tests here. |
@ -0,0 +1,9 @@ |
|||
from django.conf.urls import include, url |
|||
from sapl.configuracao_impressao.views import (ConfiguracaoImpressaoCrud) |
|||
from .apps import AppConfig |
|||
|
|||
|
|||
app_name = AppConfig.name |
|||
urlpatterns = [ |
|||
url(r'^configuracao_impressao/', include(ConfiguracaoImpressaoCrud.get_urls())), |
|||
] |
@ -0,0 +1,33 @@ |
|||
from django.shortcuts import render, get_object_or_404, redirect |
|||
from .models import ConfiguracaoImpressao |
|||
from .forms import ConfiguracaoImpressaoForm |
|||
from sapl.crud.base import Crud, MasterDetailCrud |
|||
import os |
|||
|
|||
|
|||
class ConfiguracaoImpressaoCrud(Crud): |
|||
model = ConfiguracaoImpressao |
|||
|
|||
class BaseMixin(Crud.BaseMixin): |
|||
list_field_names = ['identificador', 'nome', 'descricao'] |
|||
|
|||
class CreateView(Crud.CreateView): |
|||
form_class = ConfiguracaoImpressaoForm |
|||
|
|||
def form_valid(self, form): |
|||
return super(Crud.CreateView, self).form_valid(form) |
|||
|
|||
class UpdateView(Crud.UpdateView): |
|||
form_class = ConfiguracaoImpressaoForm |
|||
|
|||
def get_initial(self): |
|||
initial = super().get_initial() |
|||
initial['identificador'] = self.object.identificador |
|||
return initial |
|||
|
|||
class DetailView(Crud.DetailView): |
|||
layout_key = 'ConfiguracaoImpressaoDetail' |
|||
|
|||
class ListView(Crud.ListView): |
|||
paginate_by = None |
|||
ordering = ['identificador', 'nome'] |
@ -0,0 +1,18 @@ |
|||
{% load i18n %} |
|||
ConfiguracaoImpressao: |
|||
{% trans 'Configuraçao de Impressao' %}: |
|||
- identificador nome |
|||
- descricao |
|||
- largura_pagina altura_pagina |
|||
- margem_superior margem_inferior margem_esquerda margem_direita |
|||
- cor_fundo tamanho_fonte cor_fonte |
|||
- fonte espacamento_linhas |
|||
|
|||
ConfiguracaoImpressaoDetail: |
|||
{% trans 'Configuraçao de Impressao' %}: |
|||
- identificador nome |
|||
- descricao |
|||
- largura_pagina altura_pagina |
|||
- margem_superior margem_inferior margem_esquerda margem_direita |
|||
- cor_fundo tamanho_fonte cor_fonte |
|||
- fonte espacamento_linhas |
Loading…
Reference in new issue