Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---MODEL----
- from django.db import models
- from datetime import date
- class Entry(models.Model):
- date = models.DateField()
- weight = models.DecimalField(null=True, blank=True, max_digits=4, decimal_places=1)
- ---FORM----
- from django import forms
- from weightlog.models import Entry
- from datetime import date
- class UpdateEntryForm(forms.Form):
- def pretty_date(self, ugly_date):
- day_list = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
- ugly_day = ugly_date.weekday()
- pretty_day = day_list[ugly_day]
- nice_label = str(ugly_date.day) + ' ' + pretty_day
- return(nice_label)
- def __init__(self, year, month, *args, **kwargs):
- super(UpdateEntryForm, self).__init__(*args, **kwargs)
- entry_list = Entry.objects.filter(date__month=month).filter(date__year=year)
- if len(entry_list) < 27:
- #Entry.objects.filter(date__month=month).filter(date__year=year).delete()
- #entry_list = Entry.objects.filter(date__month=month.filter(date__year=year).delete()
- current_month = date(year, month, 1)
- next_month = current_month.replace(month=month+1)
- days_in_month = abs(current_month - next_month).days
- for new_day in range(days_in_month):
- new_day += 1
- entry = Entry(date=current_month.replace(day=new_day))
- entry.save()
- entry_list = Entry.objects.filter(date__month=month).filter(date__year=year)
- for entry in entry_list:
- nice_label = self.pretty_date(entry.date)
- @@ self.fields[entry] = forms.DecimalField(max_digits=4, decimal_places=1, label=nice_label)
- class ChooseDateForm(forms.Form):
- month_choices = ((1,'Jan'),(2, 'Feb'),(3, 'Mar'),(4,'Apr'),(5,'May'),(6,'Jun'),(7,'Jul'),(8,'Aug'),(9,'Sep'),(10,'Oct'),(11,'Nov'),(12,'Dec'))
- month = forms.ChoiceField(choices=month_choices, widget=forms.Select)
- year = forms.IntegerField(max_value=2075, min_value=2000)
- ---VIEW----
- from django.http import HttpResponse
- from django.http import HttpRequest
- from django.shortcuts import render_to_response
- from weightlog.forms import UpdateEntryForm
- from weightlog.forms import ChooseDateForm
- from datetime import date
- def input(request):
- if request.method == 'GET':
- try:
- choose_date_form = ChooseDateForm(request.GET)
- year = int(request.REQUEST["year"])
- month = int(request.REQUEST["month"])
- input_form = UpdateEntryForm(year, month)
- except:
- today = date.today()
- choose_date_form = ChooseDateForm()
- input_form = UpdateEntryForm(today.year,today.month)
- @@ # THIS IS WHERE I AM LOST -->
- if request.method == 'POST':
- post_data = request.POST.lists()
- # for entry_field in post_data:
- # new_entry = Entry.objects.create(date=
- # item = entry_field.date
- return render_to_response('list.html', {'list': post_data})
- return render_to_response('index.html', {'dateform': choose_date_form, 'inputform': input_form})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement