Browse Source

Todos los cambios del día 27-08-204

politica
Celestino Rey 1 year ago
parent
commit
b3b0d60d23
10 changed files with 60 additions and 18 deletions
  1. +1
    -0
      RepostajesDj/requirements.txt
  2. +23
    -5
      RepostajesDj/vehiculos/repostajes/forms.py
  3. +1
    -0
      RepostajesDj/vehiculos/repostajes/models.py
  4. +2
    -2
      RepostajesDj/vehiculos/repostajes/templates/_branding.html
  5. +5
    -3
      RepostajesDj/vehiculos/repostajes/templates/repostajes/detalle_repostaje.html
  6. +12
    -0
      RepostajesDj/vehiculos/repostajes/templates/repostajes/detalle_vehiculo.html
  7. +1
    -0
      RepostajesDj/vehiculos/repostajes/templates/repostajes/form_repostaje.html
  8. +1
    -1
      RepostajesDj/vehiculos/repostajes/templates/repostajes/index.html
  9. +13
    -7
      RepostajesDj/vehiculos/repostajes/views.py
  10. +1
    -0
      RepostajesDj/vehiculos/vehiculos/settings.py

+ 1
- 0
RepostajesDj/requirements.txt View File

@ -10,3 +10,4 @@ pycodestyle==2.12.1
pyflakes==3.2.0 pyflakes==3.2.0
sqlparse==0.5.1 sqlparse==0.5.1
typing_extensions==4.12.2 typing_extensions==4.12.2
django-calculation==1.0.0

+ 23
- 5
RepostajesDj/vehiculos/repostajes/forms.py View File

@ -2,6 +2,7 @@ from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import Vehiculo, Repostaje, ReyMotaUser from .models import Vehiculo, Repostaje, ReyMotaUser
import calculation
class VehiculoForm(forms.ModelForm): class VehiculoForm(forms.ModelForm):
@ -20,17 +21,34 @@ class VehiculoForm(forms.ModelForm):
class RepostajeForm(forms.ModelForm): class RepostajeForm(forms.ModelForm):
class Meta: class Meta:
model = Repostaje model = Repostaje
fields = ['fecha', 'kms', 'litros', 'descuento']
fields = ['fecha', 'vehiculo', 'kms', 'litros', 'importe']
fecha = forms.DateField( fecha = forms.DateField(
widget=forms.TextInput(attrs={'class': 'form-control'}))
kms = forms.DecimalField(
widget=forms.TextInput(attrs={'class': 'form-control'}))
widget=forms.DateInput(attrs={'type': 'date', 'class': 'form-control'}))
Vehiculo = forms.ModelChoiceField(
vehiculo = forms.ModelChoiceField(
queryset=Vehiculo.objects.all(), queryset=Vehiculo.objects.all(),
widget=forms.Select(attrs={'class': 'form-control'})) widget=forms.Select(attrs={'class': 'form-control'}))
kms = forms.DecimalField(
widget=forms.TextInput(attrs={'class': 'form-control'}))
litros = forms.DecimalField(
widget=forms.TextInput(attrs={'class': 'form-control'}))
importe = forms.DecimalField(
widget=forms.TextInput(attrs={'class': 'form-control'}))
aplica_descuento = forms.BooleanField(initial=False, required=False)
descuento = forms.DecimalField(
widget=calculation.FormulaInput('aplica_descuento ? parseFloat(importe*0.03).toFixed(2) : 0.0')
)
precioxlitro = forms.DecimalField(
widget=calculation.FormulaInput('(importe-descuento)/litros')
)
class ReyMotaUserCreationForm(UserCreationForm): class ReyMotaUserCreationForm(UserCreationForm):


+ 1
- 0
RepostajesDj/vehiculos/repostajes/models.py View File

@ -31,6 +31,7 @@ class Repostaje(models.Model):
kms = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True) kms = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
litros = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True) litros = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True)
descuento = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True) descuento = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True)
importe = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
precioxlitro = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True) precioxlitro = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True)
kmsrecorridos = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True) kmsrecorridos = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True)
consumo = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True) consumo = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True)


+ 2
- 2
RepostajesDj/vehiculos/repostajes/templates/_branding.html View File

@ -3,6 +3,6 @@
{% load filtros_de_entorno %} {% load filtros_de_entorno %}
<div class="app-branding"> <div class="app-branding">
<a class="app-logo" href="{% url 'principal' %}"><img class="logo-icon me-2" src="{% static 'images/reymota-logo.svg' %}" alt="logo"><span class="logo-text">LIBROS</span><span style="color: blue; font-size: 14px;"> v {{ "VERSION"|muestra_version }}</span></a>
<a class="app-logo" href="{% url 'principal' %}"><img class="logo-icon me-2" src="{% static 'images/reymota-logo.svg' %}" alt="logo"><span class="logo-text">VEHÍCULOS</span><span style="color: blue; font-size: 14px;"> v {{ "VERSION"|muestra_version }}</span></a>
</div><!--//app-branding-->
</div><!--//app-branding-->

+ 5
- 3
RepostajesDj/vehiculos/repostajes/templates/repostajes/detalle_repostaje.html View File

@ -10,11 +10,13 @@
<h4 class="notification-title mb-1">{{ repostaje.fecha }}</h4> <h4 class="notification-title mb-1">{{ repostaje.fecha }}</h4>
<ul class="notification-meta list-inline mb-0"> <ul class="notification-meta list-inline mb-0">
<li class="list-inline-item">{{ repostaje.vehiculo.matricula }}</li>
<li class="list-inline-item"><a href="{% url 'detalle_vehiculo' repostaje.vehiculo_id %}">{{ repostaje.vehiculo.matricula }}</a></li>
<li class="list-inline-item">|</li> <li class="list-inline-item">|</li>
<li class="list-inline-item">{{ repostaje.kms }}</li>
<li class="list-inline-item">{{ repostaje.kms }} kms</li>
<li class="list-inline-item">|</li> <li class="list-inline-item">|</li>
<li class="list-inline-item"><a href="{% url 'detalle_vehiculo' repostaje.vehiculo_id %}">{{ repostaje.vehiculo.nombre }}</a></li>
<li class="list-inline-item">{{ repostaje.litros }} litros</li>
<li class="list-inline-item">|</li>
<li class="list-inline-item">{{ repostaje.importe }} €</li>
</ul> </ul>
</div><!--//col--> </div><!--//col-->
</tr> </tr>


+ 12
- 0
RepostajesDj/vehiculos/repostajes/templates/repostajes/detalle_vehiculo.html View File

@ -28,14 +28,26 @@
<thead> <thead>
<tr> <tr>
<th class="cell">Fecha</th> <th class="cell">Fecha</th>
<th class="cell">Kilómetros</th>
<th class="cell">Litros</th> <th class="cell">Litros</th>
<th class="cell">Importe</th>
<th class="cell">Descuento</th>
<th class="cell">Precio por litro</th>
<th class="cell">Kms recorridos</th>
<th class="cell">Consumo/100 kms</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for repostaje in repostajes %} {% for repostaje in repostajes %}
<tr> <tr>
<td class="cell"><a href="{% url 'detalle_repostaje' repostaje.id %}">{{ repostaje.fecha }}</a></td> <td class="cell"><a href="{% url 'detalle_repostaje' repostaje.id %}">{{ repostaje.fecha }}</a></td>
<td class="cell">{{ repostaje.kms }}</td>
<td class="cell">{{ repostaje.litros }}</td> <td class="cell">{{ repostaje.litros }}</td>
<td class="cell">{{ repostaje.importe }}</td>
<td class="cell">{{ repostaje.descuento }}</td>
<td class="cell">{{ repostaje.precioxlitro }}</td>
<td class="cell">{{ repostaje.kmsrecorridos }}</td>
<td class="cell">{{ repostaje.consumo }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>


+ 1
- 0
RepostajesDj/vehiculos/repostajes/templates/repostajes/form_repostaje.html View File

@ -11,6 +11,7 @@
<button type="submit" class="btn app-btn-primary w-100 theme-btn mx-auto">Guardar</button> <button type="submit" class="btn app-btn-primary w-100 theme-btn mx-auto">Guardar</button>
</div> </div>
</form> </form>
{{ form.media }}
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

+ 1
- 1
RepostajesDj/vehiculos/repostajes/templates/repostajes/index.html View File

@ -9,7 +9,7 @@
<div class="app-card alert alert-dismissible shadow-sm mb-4 border-left-decoration" role="alert"> <div class="app-card alert alert-dismissible shadow-sm mb-4 border-left-decoration" role="alert">
<div class="inner"> <div class="inner">
<div class="app-card-body p-3 p-lg-4"> <div class="app-card-body p-3 p-lg-4">
<h3 class="mb-3">¡Bienvenido a la colección de repostajes!</h3>
<h3 class="mb-3">¡Bienvenido a la gestión de vehículos!</h3>
<div class="row gx-5 gy-3"> <div class="row gx-5 gy-3">
<!-- <!--
<div class="col-12 col-lg-9"> <div class="col-12 col-lg-9">


+ 13
- 7
RepostajesDj/vehiculos/repostajes/views.py View File

@ -78,14 +78,20 @@ def detalle_repostaje(request, repostaje_id):
@login_required @login_required
def nuevo_repostaje(request): def nuevo_repostaje(request):
if request.method == 'POST':
form = RepostajeForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('lista_repostajes')
vehiculos = Vehiculo.objects.all() # vamos a ver si hay vehículos dados de alta
if vehiculos:
if request.method == 'POST':
form = RepostajeForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('lista_repostajes')
else:
form = RepostajeForm()
return render(request, 'repostajes/form_repostaje.html', {'form': form})
else: else:
form = RepostajeForm()
return render(request, 'repostajes/form_repostaje.html', {'form': form})
return render(request, 'repostajes/index.html')
@login_required @login_required


+ 1
- 0
RepostajesDj/vehiculos/vehiculos/settings.py View File

@ -41,6 +41,7 @@ INSTALLED_APPS = [
'repostajes', 'repostajes',
'accounts', 'accounts',
'calculation',
] ]
MIDDLEWARE = [ MIDDLEWARE = [


Loading…
Cancel
Save