Feat Se añade Id de Agrupaciones en Componentes
This commit is contained in:
@@ -123,7 +123,7 @@ export const AgrupacionesManager = () => {
|
|||||||
<tbody>
|
<tbody>
|
||||||
{agrupaciones.map(agrupacion => (
|
{agrupaciones.map(agrupacion => (
|
||||||
<tr key={agrupacion.id}>
|
<tr key={agrupacion.id}>
|
||||||
<td>{agrupacion.nombre}</td>
|
<td>({agrupacion.id}) {agrupacion.nombre}</td>
|
||||||
<td><input type="text" value={editedAgrupaciones[agrupacion.id]?.nombreCorto ?? ''} onChange={(e) => handleInputChange(agrupacion.id, 'nombreCorto', e.target.value)} /></td>
|
<td><input type="text" value={editedAgrupaciones[agrupacion.id]?.nombreCorto ?? ''} onChange={(e) => handleInputChange(agrupacion.id, 'nombreCorto', e.target.value)} /></td>
|
||||||
<td><input type="color" value={sanitizeColor(editedAgrupaciones[agrupacion.id]?.color)} onChange={(e) => handleInputChange(agrupacion.id, 'color', e.target.value)} /></td>
|
<td><input type="color" value={sanitizeColor(editedAgrupaciones[agrupacion.id]?.color)} onChange={(e) => handleInputChange(agrupacion.id, 'color', e.target.value)} /></td>
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ export const BancasNacionalesManager = () => {
|
|||||||
onChange={(e) => handleAgrupacionChange(bancada.id, e.target.value || null)}
|
onChange={(e) => handleAgrupacionChange(bancada.id, e.target.value || null)}
|
||||||
>
|
>
|
||||||
<option value="">-- Vacante --</option>
|
<option value="">-- Vacante --</option>
|
||||||
{agrupaciones.map(a => <option key={a.id} value={a.id}>{a.nombre}</option>)}
|
{agrupaciones.map(a => <option key={a.id} value={a.id}>{`(${a.id}) ${a.nombre}`}</option>)}
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td>{bancada.ocupante?.nombreOcupante || 'Sin asignar'}</td>
|
<td>{bancada.ocupante?.nombreOcupante || 'Sin asignar'}</td>
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ export const BancasPreviasManager = () => {
|
|||||||
<tbody>
|
<tbody>
|
||||||
{agrupaciones.map(agrupacion => (
|
{agrupaciones.map(agrupacion => (
|
||||||
<tr key={agrupacion.id}>
|
<tr key={agrupacion.id}>
|
||||||
<td>{agrupacion.nombre}</td>
|
<td>({agrupacion.id}) {agrupacion.nombre}</td>
|
||||||
<td>
|
<td>
|
||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ export const BancasProvincialesManager = () => {
|
|||||||
onChange={(e) => handleAgrupacionChange(bancada.id, e.target.value || null)}
|
onChange={(e) => handleAgrupacionChange(bancada.id, e.target.value || null)}
|
||||||
>
|
>
|
||||||
<option value="">-- Vacante --</option>
|
<option value="">-- Vacante --</option>
|
||||||
{agrupaciones.map(a => <option key={a.id} value={a.id}>{a.nombre}</option>)}
|
{agrupaciones.map(a => <option key={a.id} value={a.id}>{`(${a.id}) ${a.nombre}`}</option>)}
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td>{bancada.ocupante?.nombreOcupante || 'Sin asignar'}</td>
|
<td>{bancada.ocupante?.nombreOcupante || 'Sin asignar'}</td>
|
||||||
|
|||||||
@@ -83,7 +83,14 @@ export const CandidatoOverridesManager = () => {
|
|||||||
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '1rem', alignItems: 'flex-end' }}>
|
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '1rem', alignItems: 'flex-end' }}>
|
||||||
<Select options={ELECCION_OPTIONS} value={selectedEleccion} onChange={(opt) => { setSelectedEleccion(opt!); setSelectedCategoria(null); }} />
|
<Select options={ELECCION_OPTIONS} value={selectedEleccion} onChange={(opt) => { setSelectedEleccion(opt!); setSelectedCategoria(null); }} />
|
||||||
<Select options={categoriaOptions} value={selectedCategoria} onChange={setSelectedCategoria} placeholder="Seleccione Categoría..." isDisabled={!selectedEleccion} />
|
<Select options={categoriaOptions} value={selectedCategoria} onChange={setSelectedCategoria} placeholder="Seleccione Categoría..." isDisabled={!selectedEleccion} />
|
||||||
<Select options={agrupaciones.map(a => ({ value: a.id, label: a.nombre, ...a }))} getOptionValue={opt => opt.id} getOptionLabel={opt => opt.nombre} value={selectedAgrupacion} onChange={setSelectedAgrupacion} placeholder="Seleccione Agrupación..." />
|
<Select
|
||||||
|
options={agrupaciones.map(a => ({ value: a.id, label: a.nombre, ...a }))}
|
||||||
|
getOptionValue={opt => opt.id}
|
||||||
|
getOptionLabel={opt => `(${opt.id}) ${opt.nombre}`}
|
||||||
|
value={selectedAgrupacion}
|
||||||
|
onChange={setSelectedAgrupacion}
|
||||||
|
placeholder="Seleccione Agrupación..."
|
||||||
|
/>
|
||||||
<Select options={AMBITO_LEVEL_OPTIONS} value={selectedAmbitoLevel} onChange={(opt) => { setSelectedAmbitoLevel(opt!); setSelectedProvincia(null); setSelectedMunicipio(null); }} />
|
<Select options={AMBITO_LEVEL_OPTIONS} value={selectedAmbitoLevel} onChange={(opt) => { setSelectedAmbitoLevel(opt!); setSelectedProvincia(null); setSelectedMunicipio(null); }} />
|
||||||
|
|
||||||
{selectedAmbitoLevel.value === 'provincia' || selectedAmbitoLevel.value === 'municipio' ? (
|
{selectedAmbitoLevel.value === 'provincia' || selectedAmbitoLevel.value === 'municipio' ? (
|
||||||
|
|||||||
@@ -56,15 +56,6 @@ export const ConfiguracionNacional = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="admin-module">
|
<div className="admin-module">
|
||||||
<h3>Configuración de Widgets Nacionales</h3>
|
<h3>Configuración de Widgets Nacionales</h3>
|
||||||
{/*<div className="form-group">
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" checked={modoOficialActivo} onChange={e => setModoOficialActivo(e.target.checked)} />
|
|
||||||
**Activar Modo "Resultados Oficiales" para Widgets Nacionales**
|
|
||||||
</label>
|
|
||||||
<p style={{ fontSize: '0.8rem', color: '#666' }}>
|
|
||||||
Si está activo, los widgets nacionales usarán la composición manual de bancas. Si no, usarán la proyección en tiempo real.
|
|
||||||
</p>
|
|
||||||
</div>*/}
|
|
||||||
|
|
||||||
<div style={{ display: 'flex', gap: '2rem', marginTop: '1rem' }}>
|
<div style={{ display: 'flex', gap: '2rem', marginTop: '1rem' }}>
|
||||||
{/* Columna Diputados */}
|
{/* Columna Diputados */}
|
||||||
@@ -77,12 +68,12 @@ export const ConfiguracionNacional = () => {
|
|||||||
</p>
|
</p>
|
||||||
<select id="presidencia-diputados-nacional" value={presidenciaDiputadosId} onChange={e => setPresidenciaDiputadosId(e.target.value)} style={{ width: '100%', padding: '8px', marginBottom: '0.5rem' }}>
|
<select id="presidencia-diputados-nacional" value={presidenciaDiputadosId} onChange={e => setPresidenciaDiputadosId(e.target.value)} style={{ width: '100%', padding: '8px', marginBottom: '0.5rem' }}>
|
||||||
<option value="">-- No Asignado --</option>
|
<option value="">-- No Asignado --</option>
|
||||||
{agrupaciones.map(a => (<option key={a.id} value={a.id}>{a.nombre}</option>))}
|
{agrupaciones.map(a => (<option key={a.id} value={a.id}>{`(${a.id}) ${a.nombre}`}</option>))}
|
||||||
</select>
|
</select>
|
||||||
{presidenciaDiputadosId && (
|
{presidenciaDiputadosId && (
|
||||||
<div>
|
<div>
|
||||||
<label><input type="radio" value="ganada" checked={diputadosTipoBanca === 'ganada'} onChange={() => setDiputadosTipoBanca('ganada')} /> Descontar de Banca Ganada</label>
|
<label><input type="radio" value="ganada" checked={diputadosTipoBanca === 'ganada'} onChange={() => setDiputadosTipoBanca('ganada')} /> Descontar de Banca Ganada</label>
|
||||||
<label style={{marginLeft: '1rem'}}><input type="radio" value="previa" checked={diputadosTipoBanca === 'previa'} onChange={() => setDiputadosTipoBanca('previa')} /> Descontar de Banca Previa</label>
|
<label style={{ marginLeft: '1rem' }}><input type="radio" value="previa" checked={diputadosTipoBanca === 'previa'} onChange={() => setDiputadosTipoBanca('previa')} /> Descontar de Banca Previa</label>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
@@ -97,7 +88,7 @@ export const ConfiguracionNacional = () => {
|
|||||||
</p>
|
</p>
|
||||||
<select id="presidencia-senado-nacional" value={presidenciaSenadoId} onChange={e => setPresidenciaSenadoId(e.target.value)} style={{ width: '100%', padding: '8px' }}>
|
<select id="presidencia-senado-nacional" value={presidenciaSenadoId} onChange={e => setPresidenciaSenadoId(e.target.value)} style={{ width: '100%', padding: '8px' }}>
|
||||||
<option value="">-- No Asignado --</option>
|
<option value="">-- No Asignado --</option>
|
||||||
{agrupaciones.map(a => (<option key={a.id} value={a.id}>{a.nombre}</option>))}
|
{agrupaciones.map(a => (<option key={a.id} value={a.id}>{`(${a.id}) ${a.nombre}`}</option>))}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import type { MunicipioSimple, AgrupacionPolitica, LogoAgrupacionCategoria, Prov
|
|||||||
import { CATEGORIAS_NACIONALES_OPTIONS, CATEGORIAS_PROVINCIALES_OPTIONS } from '../constants/categorias';
|
import { CATEGORIAS_NACIONALES_OPTIONS, CATEGORIAS_PROVINCIALES_OPTIONS } from '../constants/categorias';
|
||||||
|
|
||||||
const ELECCION_OPTIONS = [
|
const ELECCION_OPTIONS = [
|
||||||
{ value: 0, label: 'General (Toda la elección)' },
|
{ value: 0, label: 'General (Todas las elecciones)' },
|
||||||
{ value: 2, label: 'Elecciones Nacionales' },
|
{ value: 2, label: 'Elecciones Nacionales' },
|
||||||
{ value: 1, label: 'Elecciones Provinciales' }
|
{ value: 1, label: 'Elecciones Provinciales' }
|
||||||
];
|
];
|
||||||
@@ -84,7 +84,14 @@ export const LogoOverridesManager = () => {
|
|||||||
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '1rem', alignItems: 'flex-end' }}>
|
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '1rem', alignItems: 'flex-end' }}>
|
||||||
<Select options={ELECCION_OPTIONS} value={selectedEleccion} onChange={(opt) => { setSelectedEleccion(opt!); setSelectedCategoria(null); }} />
|
<Select options={ELECCION_OPTIONS} value={selectedEleccion} onChange={(opt) => { setSelectedEleccion(opt!); setSelectedCategoria(null); }} />
|
||||||
<Select options={categoriaOptions} value={selectedCategoria} onChange={setSelectedCategoria} placeholder="Seleccione Categoría..." isDisabled={!selectedEleccion} />
|
<Select options={categoriaOptions} value={selectedCategoria} onChange={setSelectedCategoria} placeholder="Seleccione Categoría..." isDisabled={!selectedEleccion} />
|
||||||
<Select options={agrupaciones.map(a => ({ value: a.id, label: a.nombre, ...a }))} getOptionValue={opt => opt.id} getOptionLabel={opt => opt.nombre} value={selectedAgrupacion} onChange={setSelectedAgrupacion} placeholder="Seleccione Agrupación..." />
|
<Select
|
||||||
|
options={agrupaciones.map(a => ({ value: a.id, label: a.nombre, ...a }))}
|
||||||
|
getOptionValue={opt => opt.id}
|
||||||
|
getOptionLabel={opt => `(${opt.id}) ${opt.nombre}`}
|
||||||
|
value={selectedAgrupacion}
|
||||||
|
onChange={setSelectedAgrupacion}
|
||||||
|
placeholder="Seleccione Agrupación..."
|
||||||
|
/>
|
||||||
<Select options={AMBITO_LEVEL_OPTIONS} value={selectedAmbitoLevel} onChange={(opt) => { setSelectedAmbitoLevel(opt!); setSelectedProvincia(null); setSelectedMunicipio(null); }} />
|
<Select options={AMBITO_LEVEL_OPTIONS} value={selectedAmbitoLevel} onChange={(opt) => { setSelectedAmbitoLevel(opt!); setSelectedProvincia(null); setSelectedMunicipio(null); }} />
|
||||||
|
|
||||||
{selectedAmbitoLevel.value === 'provincia' || selectedAmbitoLevel.value === 'municipio' ? (
|
{selectedAmbitoLevel.value === 'provincia' || selectedAmbitoLevel.value === 'municipio' ? (
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ export const OrdenDiputadosManager = () => {
|
|||||||
<ul className="sortable-list-horizontal">
|
<ul className="sortable-list-horizontal">
|
||||||
{agrupaciones.map(agrupacion => (
|
{agrupaciones.map(agrupacion => (
|
||||||
<SortableItem key={agrupacion.id} id={agrupacion.id}>
|
<SortableItem key={agrupacion.id} id={agrupacion.id}>
|
||||||
{agrupacion.nombreCorto || agrupacion.nombre}
|
{`(${agrupacion.id}) ${agrupacion.nombreCorto || agrupacion.nombre}`}
|
||||||
</SortableItem>
|
</SortableItem>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ export const OrdenDiputadosNacionalesManager = () => {
|
|||||||
<ul className="sortable-list-horizontal">
|
<ul className="sortable-list-horizontal">
|
||||||
{agrupacionesOrdenadas.map(agrupacion => (
|
{agrupacionesOrdenadas.map(agrupacion => (
|
||||||
<SortableItem key={agrupacion.id} id={agrupacion.id}>
|
<SortableItem key={agrupacion.id} id={agrupacion.id}>
|
||||||
{agrupacion.nombreCorto || agrupacion.nombre}
|
{`(${agrupacion.id}) ${agrupacion.nombreCorto || agrupacion.nombre}`}
|
||||||
</SortableItem>
|
</SortableItem>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ export const OrdenSenadoresManager = () => {
|
|||||||
<ul className="sortable-list-horizontal">
|
<ul className="sortable-list-horizontal">
|
||||||
{agrupaciones.map(agrupacion => (
|
{agrupaciones.map(agrupacion => (
|
||||||
<SortableItem key={agrupacion.id} id={agrupacion.id}>
|
<SortableItem key={agrupacion.id} id={agrupacion.id}>
|
||||||
{agrupacion.nombreCorto || agrupacion.nombre}
|
{`(${agrupacion.id}) ${agrupacion.nombreCorto || agrupacion.nombre}`}
|
||||||
</SortableItem>
|
</SortableItem>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ export const OrdenSenadoresNacionalesManager = () => {
|
|||||||
<ul className="sortable-list-horizontal">
|
<ul className="sortable-list-horizontal">
|
||||||
{agrupacionesOrdenadas.map(agrupacion => (
|
{agrupacionesOrdenadas.map(agrupacion => (
|
||||||
<SortableItem key={agrupacion.id} id={agrupacion.id}>
|
<SortableItem key={agrupacion.id} id={agrupacion.id}>
|
||||||
{agrupacion.nombreCorto || agrupacion.nombre}
|
{`(${agrupacion.id}) ${agrupacion.nombreCorto || agrupacion.nombre}`}
|
||||||
</SortableItem>
|
</SortableItem>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Api")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Elecciones.Api")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2b7fb927e2f0d9ff06dffa820bc9809d6e138b01")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+069446b90326f5acee630bf3b88238e4e054764f")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Api")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Elecciones.Api")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Api")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Elecciones.Api")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|||||||
Reference in New Issue
Block a user