37654-vm/core/views.py
Flatlogic Bot c2b6515ab1 v.01
2026-01-21 11:05:46 +00:00

50 lines
2.0 KiB
Python

from django.shortcuts import render, redirect
from django.contrib import messages
from .models import Farm
from django import forms
# Simple Form class (keeping it in views for speed, or separate file is fine too.
# best practice is forms.py but for this task I'll stick to views or create forms.py if it gets complex.
# Let's create a forms.py to be clean).
class FarmForm(forms.ModelForm):
class Meta:
model = Farm
fields = ['name', 'owner_name', 'location', 'size_hectares', 'status']
widgets = {
'name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'e.g. Green Valley Farm'}),
'owner_name': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'e.g. Somchai S.'}),
'location': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Province, District'}),
'size_hectares': forms.NumberInput(attrs={'class': 'form-control', 'step': '0.01'}),
'status': forms.Select(attrs={'class': 'form-select'}),
}
def dashboard(request):
# Stats
total_farms = Farm.objects.count()
active_farms = Farm.objects.filter(status='active').count()
pending_farms = Farm.objects.filter(status='pending').count()
# Recent
recent_farms = Farm.objects.order_by('-registration_date')[:5]
context = {
'total_farms': total_farms,
'active_farms': active_farms,
'pending_farms': pending_farms,
'recent_farms': recent_farms,
'page_title': 'Overview'
}
return render(request, 'core/index.html', context)
def farm_create(request):
if request.method == 'POST':
form = FarmForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'Farm registered successfully!')
return redirect('dashboard')
else:
form = FarmForm()
return render(request, 'core/farm_form.html', {'form': form, 'page_title': 'Register New Farm'})