Ejemplo n.º 1
0
def create(request):
    already_assigned_meals = None
    if request.method == "POST":
        form = ListCreateForm(request.POST)
        if form.is_valid():
            shopping_list = None
            try:
                from_date = form.cleaned_data["from_date"]
                to_date = form.cleaned_data["to_date"]
                date = form.cleaned_data["date"]
                shopping_list = ShoppingList.create_for_range(from_date, to_date)
                shopping_list.date = date
                shopping_list.save()
            except ShoppingList.RangeNotEmptyException as e:
                override_hash = hashlib.sha1("%s%s%s" % (date.ctime(), from_date.ctime(), to_date.ctime())).hexdigest()
                if form.cleaned_data["override"] == override_hash:
                    shopping_list = ShoppingList.create_for_range(from_date, to_date, override=True)
                    shopping_list.date = date
                    shopping_list.save()
                else:
                    form.data = form.data.copy()
                    form.data["override"] = override_hash
                    already_assigned_meals = e[0].select_related("shopping_list")

            if shopping_list:
                messages.success(request, "Shopping list created updated.")
                return redirect(shopping_list)

    else:
        form = ListCreateForm()

    dict = {"form": form, "already_assigned_meals": already_assigned_meals}
    return render_to_response("lists/create.html", dict, context_instance=RequestContext(request))
Ejemplo n.º 2
0
 def test_empty_range_creation(self):
     fro = datetime.date(2010, 9, 1)
     to = datetime.date(2010, 9, 30)
     l = ShoppingList.create_for_range(fro, to)
     meals = l.meals.all()
     self.assertEqual(meals.count(), 60)
     for meal in meals:
         meal.full_clean()
     l.full_clean()
Ejemplo n.º 3
0
    def test_non_empty_range_creation_with_override(self):
        from planning.models import Meal
        fro = datetime.date(2010, 9, 1)
        to = datetime.date(2010, 9, 3)

        preexistent_meal = Meal.objects.create(date=datetime.date(2010, 9, 2), time_of_day='L', persons=1)

        l = ShoppingList.create_for_range(fro, to, override=True)
        meals = l.meals.all()
        self.assertEqual(meals.count(), 6)
        preexistent_meal = Meal.objects.get(pk= preexistent_meal.pk) # Update cache
        self.assertEqual(preexistent_meal.shopping_list, l)

        for meal in meals:
            meal.full_clean()
        l.full_clean()
Ejemplo n.º 4
0
 def test_empty_range_creation_with_no_dinner_on_last_day(self):
     date = datetime.date(2010, 9, 1)
     l = ShoppingList.create_for_range(date, date, moment_to='L')
     meal = l.meals.get()
     self.assertEqual(meal.date, date)
     self.assertEqual(meal.time_of_day, 'L')
Ejemplo n.º 5
0
 def test_empty_range_creation_with_no_lunch_on_first_day(self):
     date = datetime.date(2010, 9, 1)
     l = ShoppingList.create_for_range(date, date, moment_from='D')
     meal = l.meals.get()
     self.assertEqual(meal.date, date)
     self.assertEqual(meal.time_of_day, 'D')