Exemple #1
0
def new_goal(request):
    error_message = None

    try:
        goal_text = request.POST['goal_text']

        g = Goal()

        g.user = request.user

        try:
            g.parse(goal_text)

        except Exception:
            messages.error(request, "Invalid goal. Please enter a correctly formatted goal.")

            return HttpResponseRedirect(reverse("habits.views.main"))

        g.save()
        g.create_scheduled_instances(Goal.beginning_today(request.user), 5)

        return HttpResponseRedirect(reverse("habits.views.main"))

    except KeyError:
        error_message = "Please enter a valid goal"
        return render_to_response("main.html", standard_data(request, error_message),
            context_instance=RequestContext(request))
Exemple #2
0
    def setUp(self):
        self.user = User(username="******", password="******")
        self.user.save()

        simple_goal_text = "Go for a walk every day"

        self.simple_goal = Goal()
        self.simple_goal.user = self.user        
        self.simple_goal.parse(simple_goal_text)
        self.simple_goal.save()

        byday_text = "Go to the gym every mon wed and fri starting jan 7 2013"

        self.byday_goal = Goal()
        self.byday_goal.user = self.user
        self.byday_goal.parse(byday_text)
        self.byday_goal.save()
        
        self.today = Goal.beginning_today(self.user)
        self.yesterday = self.today - datetime.timedelta(days=1)
        self.tomorrow = self.today + datetime.timedelta(days=1)
        self.day_after_tomorrow = self.today + datetime.timedelta(days=2)

        self.five_days_ago = self.today - datetime.timedelta(days=5)
        self.four_days_ago = self.today - datetime.timedelta(days=4)

        self.old_goal = Goal()
        self.old_goal.user = self.user
        self.old_goal.created_at = self.five_days_ago
        self.old_goal.creation_text = "foo"
        self.old_goal.description = "foo"
        self.old_goal.dtstart = self.five_days_ago
        self.old_goal.rrule = 'DTSTART:' + self.old_goal.dtstart.strftime("%Y%m%d") + '\nRRULE:FREQ=DAILY;INTERVAL=1'
        self.old_goal.save()
Exemple #3
0
def update_tz(request):
    old_today = Goal.beginning_today(request.user)

    new_timezone = request.POST['timezone']

    profile = request.user.userprofile
    profile.timezone = new_timezone
    profile.save()

    for goal in request.user.goal_set.all():
        goal.scheduledinstance_set.filter(date__gt=timezone.now()).delete()

        goal.scheduledinstance_set.filter(date=old_today).delete()
        new_today = Goal.beginning_today(request.user)
        goal.create_scheduled_instances(new_today, 5)

    return HttpResponseRedirect(reverse("habits.views.main"))
Exemple #4
0
def standard_data(request, error_message=None):
    todo = Goal.goals_for_today(request.user)
    completed = Goal.completed_goals_for_today(request.user)
    tomorrow = Goal.beginning_today(request.user) + datetime.timedelta(days=1)

    return {'skipped': Goal.skipped_goals_for_today(request.user),
            'goals': Goal.objects.filter(user=request.user).select_related('scheduledinstances'),
            'todo': todo,
             'completed': completed,
             'tomorrow': tomorrow,
             'user_tz': request.user.userprofile.timezone,
              'readable_tz': request.user.userprofile.readable(),
             'error_message': error_message}
Exemple #5
0
    def test_splitting_input(self):

        goal = Goal()
        goal.user = self.user

        goal.parse("2 hours of studying every day")

        self.assertEqual(goal.creation_text, "2 hours of studying every day")
        self.assertEqual(goal.description, "2 hours of studying")
        self.assertEqual(goal.rrule,
            'DTSTART:' + self.today.strftime("%Y%m%d") + '\nRRULE:FREQ=DAILY;INTERVAL=1')
        self.assertEqual(goal.dtstart, Goal.beginning_today(self.user))
        self.assertEqual(goal.freq, "daily")
        self.assertEqual(goal.byday, None)
Exemple #6
0
    def setUp(self):
        self.user = User(username="******", password="******")
        self.user.save()

        simple_goal_text = "Go for a walk every day"

        self.simple_goal = Goal()
        self.simple_goal.user = self.user
        self.simple_goal.parse(simple_goal_text)
        self.simple_goal.save()

        self.today = Goal.beginning_today(self.user)

        self.i1 = ScheduledInstance(goal=self.simple_goal, date=self.today)
        self.i1.save()