@@ -129,16 +149,5 @@ onUnmounted(() => {
diff --git a/src/components/RegistredItems.vue b/src/components/RegistredItems.vue
new file mode 100644
index 0000000..574c6db
--- /dev/null
+++ b/src/components/RegistredItems.vue
@@ -0,0 +1,317 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Informações cadastrais
+
+
+
+
+
+
+ {{ props.items.status }}
+
+
+
+
+
+
+ {{ props.items.name }}
+
+
+
+
+
+
+ {{ props.items.institutionName }}
+
+
+
+
+
+
+ {{ props.items.courseName }}
+
+
+
+
+
+
+ {{ props.items.workload }} horas
+
+
+
+
+
+
+ {{ props.items.schoolDays }} dias letivos
+
+
+
+
+
+
+ {{ props.items.cnpj }}
+
+
+
+
+
+ {{ props.items.phone }}
+
+
+
+
+
+
+ {{ props.items.email }}
+
+
+
+
+
+ {{ props.items.website }}
+
+
+
+
+
+
+ {{ props.items.regulation }}
+
+
+
+
+
+
+ {{ props.items.INEPCode }}
+
+
+
+
+
+
+ {{ props.items.IESCode }}
+
+
+
+
+
+
+
+ Endereço
+
+
+
+
+
+
+ {{ props.items.address }}
+
+
+
+
+
+ {{ props.items.city }}
+
+ - {{ props.items.state }}
+
+
+
+
+
+
+
+ {{ props.items.postalCode }}
+
+
+
+
+
+
+ {{ props.items.neighborhood }}
+
+
+
+
+
+
+
+
+ Disciplina
+
+
+
+
+ Carga Horária
+
+
+
+
+
+
+ {{ d.disciplineName }}
+
+
+
+
+ {{ d.workload || '-' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fechar
+
+
+
+
+ Editar
+
+
+
+
+
+
+
+
+
diff --git a/src/components/theme/ContentLayout.vue b/src/components/theme/ContentLayout.vue
index e890d59..9fc5c82 100644
--- a/src/components/theme/ContentLayout.vue
+++ b/src/components/theme/ContentLayout.vue
@@ -1,5 +1,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- Novo
-
-
-
-
-
{
- deleteModal = event;
- setDeleteModal(true);
- }"
- @update:edit="(event) => {
-
- if (isMobileDevice()) {
- editingId = event.data?.id
- setEditModal(true)
- }
- else {
- router.push({ name: 'RegisterFunction', params: { id: event.data?.id } })
- }
- }"
- @update:see="(event) => {
- if (isMobileDevice()) {
- seeModal = event
- }
- else {
- router.push({ name: 'FunctionDetails', params: { id: event.data?.id } })
- }
- }"
- />
-
-
- { showToast(message, 'top', color); }"
- />
-
-
-
-
- {
- editingId = seeModal.data?.id;
- setSeeModal(false);
- setEditModal(true);
- }"
- />
-
-
-
-
-
- { showToast(message, 'top', color); }"
- />
-
-
-
-
-
-
- Excluir função
-
- Tem certeza que deseja excluir esta função?
-
-
-
- Cancelar
-
-
- Confirmar
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/modules/school-management/views/DashboardSeries.vue b/src/modules/school-management/views/DashboardSeries.vue
new file mode 100644
index 0000000..397571c
--- /dev/null
+++ b/src/modules/school-management/views/DashboardSeries.vue
@@ -0,0 +1,289 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Novo
+
+
+
+
{
+ deleteModal = event;
+ setDeleteModal(true);
+ }"
+ @update:edit="(event) => {
+
+ if (isMobileDevice()) {
+ editingId = event.data?.id
+ setEditModal(true)
+ }
+ else {
+ router.push({ name: 'RegisterSeries', params: { id: event.data?.id } })
+ }
+ }"
+ @update:see="(event) => {
+ if (isMobileDevice()) {
+ seeModal = event
+ }
+ else {
+ router.push({ name: 'RegistredItems', params: { id: event.data?.id } })
+ }
+ }"
+ />
+
+
+
+
+
+
+
+
+
+ {
+ editingId = seeModal.data?.id;
+ setSeeModal(false);
+ setEditModal(true);
+ }"
+ />
+
+
+
+
+
+
+
+
+
+
+
+ Excluir Série
+
+ Tem certeza que deseja excluir esta série?
+
+
+
+ Cancelar
+
+
+ Confirmar
+
+
+
+
+
+
+
+
+
+
diff --git a/src/modules/school-management/views/FunctionDetailsDesktop.vue b/src/modules/school-management/views/FunctionDetailsDesktop.vue
deleted file mode 100644
index ea6a0b2..0000000
--- a/src/modules/school-management/views/FunctionDetailsDesktop.vue
+++ /dev/null
@@ -1,195 +0,0 @@
-
-
-
-
-
-
-
Carregando detalhes da função...
-
-
-
{{ functionDetails.name }}
-
-
-
Informações básicas
-
-
-
-
- Nome
- {{ functionDetails.name || '-' }}
-
-
-
-
-
Abreviação
-
- {{ functionDetails.abbreviation }}
- -
-
-
-
-
-
-
-
-
- Descrição
- {{ functionDetails.description || '-' }}
-
-
-
-
-
-
-
-
-
-
-
Função não encontrada
-
Voltar
-
-
-
-
-
-
diff --git a/src/modules/school-management/views/RegisterFunction.vue b/src/modules/school-management/views/RegisterFunction.vue
deleted file mode 100644
index 3542898..0000000
--- a/src/modules/school-management/views/RegisterFunction.vue
+++ /dev/null
@@ -1,294 +0,0 @@
-
-
-
-
-
-
-
- {{ pageTitle }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- Cancelar
-
-
-
-
- Salvar
-
-
-
-
-
-
-
-
-
-
diff --git a/src/modules/school-management/views/RegisterFunctionMobile.vue b/src/modules/school-management/views/RegisterFunctionMobile.vue
deleted file mode 100644
index f343fcb..0000000
--- a/src/modules/school-management/views/RegisterFunctionMobile.vue
+++ /dev/null
@@ -1,357 +0,0 @@
-
-
-
-
-
-
-
- {{ modalTitle }}
-
-
-
-
-
-
-
-
- Cancelar
-
-
-
-
- Salvar
-
-
-
-
-
-
-
-
-
diff --git a/src/modules/school-management/views/RegisterSeriesMobile.vue b/src/modules/school-management/views/RegisterSeriesMobile.vue
new file mode 100644
index 0000000..5df128d
--- /dev/null
+++ b/src/modules/school-management/views/RegisterSeriesMobile.vue
@@ -0,0 +1,550 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancelar
+
+
+
+
+ Salvar
+
+
+
+
+
+
+
+
+
diff --git a/src/modules/teacher-journey b/src/modules/teacher-journey
index 70bd6bb..48924d7 160000
--- a/src/modules/teacher-journey
+++ b/src/modules/teacher-journey
@@ -1 +1 @@
-Subproject commit 70bd6bb9b648990339b575933f4a41c06934dc50
+Subproject commit 48924d76985870311ce04ea4fc653db0e0895fe4
diff --git a/src/types/database.types.ts b/src/types/database.types.ts
index 380557c..3d0cf94 100644
--- a/src/types/database.types.ts
+++ b/src/types/database.types.ts
@@ -367,8 +367,8 @@ export interface Database {
}
Insert: {
course_modality?:
- | Database['public']['Enums']['course_modality']
- | null
+ | Database['public']['Enums']['course_modality']
+ | null
course_stage?: string | null
createdAt?: string
deletedAt?: string | null
@@ -387,8 +387,8 @@ export interface Database {
}
Update: {
course_modality?:
- | Database['public']['Enums']['course_modality']
- | null
+ | Database['public']['Enums']['course_modality']
+ | null
course_stage?: string | null
createdAt?: string
deletedAt?: string | null
@@ -1315,8 +1315,8 @@ export interface Database {
place_of_birth: string | null
postalcode: string | null
residence_zone:
- | Database['public']['Enums']['residence_zone_type']
- | null
+ | Database['public']['Enums']['residence_zone_type']
+ | null
responsibleType: Database['public']['Enums']['responsibletype'] | null
rg_issue_date: string | null
rg_issuer: string | null
@@ -1360,11 +1360,11 @@ export interface Database {
place_of_birth?: string | null
postalcode?: string | null
residence_zone?:
- | Database['public']['Enums']['residence_zone_type']
- | null
+ | Database['public']['Enums']['residence_zone_type']
+ | null
responsibleType?:
- | Database['public']['Enums']['responsibletype']
- | null
+ | Database['public']['Enums']['responsibletype']
+ | null
rg_issue_date?: string | null
rg_issuer?: string | null
rg_number?: string | null
@@ -1407,11 +1407,11 @@ export interface Database {
place_of_birth?: string | null
postalcode?: string | null
residence_zone?:
- | Database['public']['Enums']['residence_zone_type']
- | null
+ | Database['public']['Enums']['residence_zone_type']
+ | null
responsibleType?:
- | Database['public']['Enums']['responsibletype']
- | null
+ | Database['public']['Enums']['responsibletype']
+ | null
rg_issue_date?: string | null
rg_issuer?: string | null
rg_number?: string | null
@@ -1764,65 +1764,65 @@ export interface Database {
Enums: {
attendance_status: 'PRESENT' | 'ABSENT' | 'EXCUSED'
course_modality:
- | 'Ensino Regular'
- | 'EJA'
- | 'Educação Profissional'
- | 'Educação Especial'
+ | 'Ensino Regular'
+ | 'EJA'
+ | 'Educação Profissional'
+ | 'Educação Especial'
course_stage_type:
- | 'Etapa 1'
- | 'Etapa 2'
- | 'Etapa 3'
- | 'Etapa 4'
- | 'Etapa 5'
- | 'Etapa 6'
+ | 'Etapa 1'
+ | 'Etapa 2'
+ | 'Etapa 3'
+ | 'Etapa 4'
+ | 'Etapa 5'
+ | 'Etapa 6'
day_of_week:
- | 'Segunda'
- | 'Terça'
- | 'Quarta'
- | 'Quinta'
- | 'Sexta'
- | 'Sábado'
- | 'Domingo'
+ | 'Segunda'
+ | 'Terça'
+ | 'Quarta'
+ | 'Quinta'
+ | 'Sexta'
+ | 'Sábado'
+ | 'Domingo'
deficiency_type:
- | 'Visual'
- | 'Auditiva'
- | 'Física'
- | 'Intelectual'
- | 'Mental'
- | 'Múltipla'
- | 'Outros'
- | 'Não possui'
+ | 'Visual'
+ | 'Auditiva'
+ | 'Física'
+ | 'Intelectual'
+ | 'Mental'
+ | 'Múltipla'
+ | 'Outros'
+ | 'Não possui'
ethnicity_type:
- | 'Branca'
- | 'Preta'
- | 'Parda'
- | 'Amarela'
- | 'Indígena'
- | 'Não declarada'
+ | 'Branca'
+ | 'Preta'
+ | 'Parda'
+ | 'Amarela'
+ | 'Indígena'
+ | 'Não declarada'
gender_type: 'Masculino' | 'Feminino'
graduate_status: 'Sim' | 'Não'
marital_status_type:
- | 'Solteiro'
- | 'Casado'
- | 'Divorciado'
- | 'Viúvo'
- | 'Separado'
- | 'União Estável'
- | 'Não Informado'
+ | 'Solteiro'
+ | 'Casado'
+ | 'Divorciado'
+ | 'Viúvo'
+ | 'Separado'
+ | 'União Estável'
+ | 'Não Informado'
period: 'Manhã' | 'Tarde' | 'Noite'
regime_type: 'Presencial' | 'EAD' | 'Semi-Presencial'
residence_zone_type: 'Urbana' | 'Rural'
responsibletype: 'Pai' | 'Mãe' | 'Ambos'
situation_type:
- | 'Pendente'
- | 'Cursando'
- | 'Aprovado'
- | 'Aprovado pelo Conselho'
- | 'Aprovado com Dependência'
- | 'Reprovado'
- | 'Transferido'
- | 'Abandono'
- | 'Falecido'
+ | 'Pendente'
+ | 'Cursando'
+ | 'Aprovado'
+ | 'Aprovado pelo Conselho'
+ | 'Aprovado com Dependência'
+ | 'Reprovado'
+ | 'Transferido'
+ | 'Abandono'
+ | 'Falecido'
status: 'Ativo' | 'Inativo' | 'Graduado' | 'Suspenso' | 'Transferido'
teaching_type: 'Complementar' | 'Padrão'
}
@@ -1839,80 +1839,80 @@ export type Tables<
| keyof (PublicSchema['Tables'] & PublicSchema['Views'])
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
- ? keyof (Database[PublicTableNameOrOptions['schema']]['Tables'] &
- Database[PublicTableNameOrOptions['schema']]['Views'])
- : never = never,
+ ? keyof (Database[PublicTableNameOrOptions['schema']]['Tables'] &
+ Database[PublicTableNameOrOptions['schema']]['Views'])
+ : never = never,
> = PublicTableNameOrOptions extends { schema: keyof Database }
? (Database[PublicTableNameOrOptions['schema']]['Tables'] &
Database[PublicTableNameOrOptions['schema']]['Views'])[TableName] extends {
Row: infer R
}
- ? R
- : never
+ ? R
+ : never
: PublicTableNameOrOptions extends keyof (PublicSchema['Tables'] &
PublicSchema['Views'])
- ? (PublicSchema['Tables'] &
- PublicSchema['Views'])[PublicTableNameOrOptions] extends {
- Row: infer R
- }
- ? R
- : never
- : never
+ ? (PublicSchema['Tables'] &
+ PublicSchema['Views'])[PublicTableNameOrOptions] extends {
+ Row: infer R
+ }
+ ? R
+ : never
+ : never
export type TablesInsert<
PublicTableNameOrOptions extends
| keyof PublicSchema['Tables']
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
- ? keyof Database[PublicTableNameOrOptions['schema']]['Tables']
- : never = never,
+ ? keyof Database[PublicTableNameOrOptions['schema']]['Tables']
+ : never = never,
> = PublicTableNameOrOptions extends { schema: keyof Database }
? Database[PublicTableNameOrOptions['schema']]['Tables'][TableName] extends {
Insert: infer I
}
- ? I
- : never
+ ? I
+ : never
: PublicTableNameOrOptions extends keyof PublicSchema['Tables']
- ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
- Insert: infer I
- }
- ? I
- : never
- : never
+ ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
+ Insert: infer I
+ }
+ ? I
+ : never
+ : never
export type TablesUpdate<
PublicTableNameOrOptions extends
| keyof PublicSchema['Tables']
| { schema: keyof Database },
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
- ? keyof Database[PublicTableNameOrOptions['schema']]['Tables']
- : never = never,
+ ? keyof Database[PublicTableNameOrOptions['schema']]['Tables']
+ : never = never,
> = PublicTableNameOrOptions extends { schema: keyof Database }
? Database[PublicTableNameOrOptions['schema']]['Tables'][TableName] extends {
Update: infer U
}
- ? U
- : never
+ ? U
+ : never
: PublicTableNameOrOptions extends keyof PublicSchema['Tables']
- ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
- Update: infer U
- }
- ? U
- : never
- : never
+ ? PublicSchema['Tables'][PublicTableNameOrOptions] extends {
+ Update: infer U
+ }
+ ? U
+ : never
+ : never
export type Enums<
PublicEnumNameOrOptions extends
| keyof PublicSchema['Enums']
| { schema: keyof Database },
EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
- ? keyof Database[PublicEnumNameOrOptions['schema']]['Enums']
- : never = never,
+ ? keyof Database[PublicEnumNameOrOptions['schema']]['Enums']
+ : never = never,
> = PublicEnumNameOrOptions extends { schema: keyof Database }
? Database[PublicEnumNameOrOptions['schema']]['Enums'][EnumName]
: PublicEnumNameOrOptions extends keyof PublicSchema['Enums']
- ? PublicSchema['Enums'][PublicEnumNameOrOptions]
- : never
+ ? PublicSchema['Enums'][PublicEnumNameOrOptions]
+ : never
export type CompositeTypes<
PublicCompositeTypeNameOrOptions extends
@@ -1921,10 +1921,10 @@ export type CompositeTypes<
CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
schema: keyof Database
}
- ? keyof Database[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes']
- : never = never,
+ ? keyof Database[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes']
+ : never = never,
> = PublicCompositeTypeNameOrOptions extends { schema: keyof Database }
? Database[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'][CompositeTypeName]
: PublicCompositeTypeNameOrOptions extends keyof PublicSchema['CompositeTypes']
- ? PublicSchema['CompositeTypes'][PublicCompositeTypeNameOrOptions]
- : never
+ ? PublicSchema['CompositeTypes'][PublicCompositeTypeNameOrOptions]
+ : never
diff --git a/src/utils/validationRules.ts b/src/utils/validationRules.ts
index 723f739..70e394f 100644
--- a/src/utils/validationRules.ts
+++ b/src/utils/validationRules.ts
@@ -8,10 +8,64 @@ import {
} from 'validations-br'
import { defineRule } from 'vee-validate'
-defineRule('required', required)
-defineRule('min', min)
-defineRule('max', max)
-defineRule('email', email)
+const fieldLabels: Record
= {
+ inepCode: 'Código INEP',
+ schoolName: 'Nome da Escola',
+ corporateName: 'Razão Social',
+ cnpj: 'CNPJ',
+ educationNetwork: 'Rede de Ensino',
+ postalCode: 'CEP',
+ state: 'Estado',
+ address: 'Endereço',
+ addressNumber: 'Número',
+ additionalInfo: 'Complemento',
+ neighborhood: 'Bairro',
+ city: 'Município',
+ unusualLocation: 'Localização diferenciada da escola',
+ phone1: 'Telefone 1',
+ phone2: 'Telefone 2',
+ email: 'E-mail',
+ website: 'Site',
+ abbreviation: 'Sigla',
+ blockJournalEntries: 'Bloquear lançamento no diário',
+ usesAlternativeRules: 'Utiliza regra alternativa de avaliação',
+ operationalStatus: 'Situação de Funcionamento',
+ administrativeDependency: 'Dependência Administrativa',
+ // Add more mappings as needed
+}
+
+defineRule('required', (value: string, _, context) => {
+ const fieldLabel = fieldLabels[context.field] || context.field
+ if (!value) {
+ return `O campo "${fieldLabel}" é obrigatório.`
+ }
+ return true
+})
+
+defineRule('min', (value: string, [min]: [number], context) => {
+ const fieldLabel = fieldLabels[context.field] || context.field
+ if (value.length < min) {
+ return `O campo "${fieldLabel}" deve ter pelo menos ${min} caracteres.`
+ }
+ return true
+})
+
+defineRule('max', (value: string, [max]: [number], context) => {
+ const fieldLabel = fieldLabels[context.field] || context.field
+ if (value.length > max) {
+ return `O campo "${fieldLabel}" deve ter no máximo ${max} caracteres.`
+ }
+ return true
+})
+
+defineRule('email', (value: string, _, context) => {
+ const fieldLabel = fieldLabels[context.field] || context.field
+ const emailRegex = /^[^\s@]+@[^\s@][^\s.@]*\.[^\s@]+$/
+ if (!emailRegex.test(value)) {
+ return `O campo "${fieldLabel}" deve ser um e-mail válido.`
+ }
+ return true
+})
defineRule('cpf', (value: string) => {
if (!value || !validateCPF(value)) {
@@ -104,3 +158,12 @@ defineRule('somaAtividades', (_value: string, _, context) => {
return 'A soma das atividades não pode ultrapassar 10'
return true
})
+
+defineRule('postalCode', (value: string, _, context) => {
+ const fieldLabel = fieldLabels[context.field] || context.field
+ const postalCodeRegex = /^\d{5}-\d{3}$/
+ if (!postalCodeRegex.test(value)) {
+ return `O campo "${fieldLabel}" deve ser um CEP válido.`
+ }
+ return true
+})