Advertisement
Guest User

pinchyfingers

a guest
Jul 15th, 2009
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.17 KB | None | 0 0
  1. ---MODEL----
  2.  
  3. from django.db import models
  4. from datetime import date
  5.  
  6. class Entry(models.Model):
  7.     date = models.DateField()
  8.     weight = models.DecimalField(null=True, blank=True, max_digits=4, decimal_places=1)
  9.  
  10. ---FORM----
  11.  
  12. from django import forms
  13. from weightlog.models import Entry
  14. from datetime import date
  15.  
  16. class UpdateEntryForm(forms.Form):
  17.     def pretty_date(self, ugly_date):
  18.         day_list = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  19.         ugly_day = ugly_date.weekday()
  20.         pretty_day = day_list[ugly_day]
  21.         nice_label = str(ugly_date.day) + ' ' + pretty_day
  22.         return(nice_label)
  23.  
  24.     def __init__(self, year, month, *args, **kwargs):
  25.         super(UpdateEntryForm, self).__init__(*args, **kwargs)
  26.         entry_list = Entry.objects.filter(date__month=month).filter(date__year=year)
  27.            
  28.         if len(entry_list) < 27:
  29.             #Entry.objects.filter(date__month=month).filter(date__year=year).delete()
  30.             #entry_list = Entry.objects.filter(date__month=month.filter(date__year=year).delete()
  31.             current_month = date(year, month, 1)
  32.             next_month = current_month.replace(month=month+1)
  33.             days_in_month = abs(current_month - next_month).days
  34.             for new_day in range(days_in_month):
  35.                 new_day += 1
  36.                 entry = Entry(date=current_month.replace(day=new_day))
  37.                 entry.save()
  38.             entry_list = Entry.objects.filter(date__month=month).filter(date__year=year)
  39.  
  40.         for entry in entry_list:
  41.             nice_label = self.pretty_date(entry.date)
  42. @@            self.fields[entry] = forms.DecimalField(max_digits=4, decimal_places=1, label=nice_label)
  43.  
  44. class ChooseDateForm(forms.Form):
  45.     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'))
  46.     month = forms.ChoiceField(choices=month_choices, widget=forms.Select)
  47.     year = forms.IntegerField(max_value=2075, min_value=2000)
  48.  
  49.  
  50. ---VIEW----
  51.  
  52. from django.http import HttpResponse
  53. from django.http import HttpRequest
  54. from django.shortcuts import render_to_response
  55. from weightlog.forms import UpdateEntryForm
  56. from weightlog.forms import ChooseDateForm
  57. from datetime import date
  58.  
  59. def input(request):
  60.    
  61.     if request.method == 'GET':
  62.         try:
  63.             choose_date_form = ChooseDateForm(request.GET)
  64.             year = int(request.REQUEST["year"])
  65.             month = int(request.REQUEST["month"])
  66.             input_form = UpdateEntryForm(year, month)
  67.         except:
  68.             today = date.today()
  69.             choose_date_form = ChooseDateForm()
  70.             input_form = UpdateEntryForm(today.year,today.month)
  71.  
  72. @@     # THIS IS WHERE I AM LOST -->
  73.  
  74.     if request.method == 'POST':
  75.         post_data = request.POST.lists()
  76.        # for entry_field in post_data:
  77.        #     new_entry = Entry.objects.create(date=
  78.        #     item = entry_field.date
  79.         return render_to_response('list.html', {'list': post_data})
  80.                    
  81.                    
  82.     return render_to_response('index.html', {'dateform': choose_date_form, 'inputform': input_form})
  83.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement