| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- {% extends 'base.html' %}
- {% block content %}
- <div class="row justify-content-center">
- <div class="col-md-8">
- <div class="card">
- <div class="card-header">Simulación para: <strong>{{ casa.nombre }}</strong></div>
- <div class="card-body">
- <div class="alert alert-secondary mb-4">
- <div class="row">
- <div class="col-md-6"><strong>Ubicación:</strong> {{ casa.ciudad.nombre_ciudad }}, {{ casa.ciudad.provincia }}</div>
- <div class="col-md-6"><strong>Área Disponible:</strong> {{ casa.area_techo }} m²</div>
- </div>
- </div>
- <form action="{{ url_for('main.calculate') }}" method="POST">
- <input type="hidden" name="id_casa" value="{{ casa.id_casa }}">
-
- <div class="mb-3">
- <label for="id_panel" class="form-label">Modelo de Panel</label>
- <select name="id_panel" class="form-select" id="panelSelect" required onchange="updateMaxPanels()">
- {% for panel in paneles %}
- <option value="{{ panel.id_panel }}" data-area="{{ panel.area_m2 }}">
- {{ panel.marca }} {{ panel.modelo }} ({{ panel.eficiencia_r * 100 }}% Eficiencia, {{ panel.area_m2 }} m²)
- </option>
- {% endfor %}
- </select>
- </div>
- <div class="mb-3">
- <label for="cantidad" class="form-label">Cantidad de Paneles</label>
- <input type="number" name="cantidad" id="cantidadInput" class="form-control" required min="1">
- <div id="maxPanelsHelp" class="form-text text-muted"></div>
- </div>
- <div class="mb-3">
- <label for="precio_kwh" class="form-label">Precio del kWh ($)</label>
- <input type="number" step="0.01" name="precio_kwh" class="form-control" value="0.15" required>
- </div>
- <button type="submit" class="btn btn-success w-100">Calcular</button>
- <a href="{{ url_for('main.casas') }}" class="btn btn-link w-100 mt-2">Volver a Mis Casas</a>
- </form>
- </div>
- </div>
- </div>
- </div>
- <script>
- function updateMaxPanels() {
- const houseArea = {{ casa.area_techo }};
- const select = document.getElementById('panelSelect');
- const selectedOption = select.options[select.selectedIndex];
- const panelArea = parseFloat(selectedOption.getAttribute('data-area'));
-
- const maxPanels = Math.floor(houseArea / panelArea);
-
- const helpText = document.getElementById('maxPanelsHelp');
- helpText.innerText = `Máximo recomendado para tu techo: ${maxPanels} paneles`;
-
- const input = document.getElementById('cantidadInput');
- input.max = maxPanels;
- }
-
- // Run on load
- document.addEventListener('DOMContentLoaded', updateMaxPanels);
- </script>
- {% endblock %}
|