示例#1
0
def createWorkItem(request, reminder_id=None):
    try:
        reminder, date = validate_reminder_id(request, reminder_id)
    except BadReminderId as e:
        resp = HttpResponse(e.args)
        resp['Worklog-UnableToCreateItem'] = ''  # for testing purposes
        return resp

    if request.method == 'POST':  # If the form has been submitted...
        form = WorkItemForm(request.POST,
                            reminder=reminder,
                            logged_in_user=request.user)
        if form.is_valid():
            # get form data
            hours = form.cleaned_data['hours']
            text = form.cleaned_data['text']
            job = form.cleaned_data['job']
            # create then save an item
            wi = WorkItem(user=request.user,
                          date=date,
                          hours=hours,
                          text=text,
                          job=job)
            wi.save()
            if 'submit_and_add_another' in request.POST:
                # redisplay workitem form so another item may be added
                return HttpResponseRedirect(request.path)
            else:
                if date == datetime.date.today():
                    return HttpResponseRedirect(
                        '/worklog/view/%s/today/' %
                        request.user.username)  # Redirect after POST
                else:
                    return HttpResponseRedirect(
                        '/worklog/view/%s/%s_%s/' %
                        (request.user.username, date, date))
    else:
        form = WorkItemForm(reminder=reminder,
                            logged_in_user=request.user)  # An unbound form

    items = WorkItem.objects.filter(date=date, user=request.user)
    rawitems = list(tuple(_itercolumns(item)) for item in items)

    if BiweeklyEmployee.objects.filter(user=request.user).count() > 0:
        holidays = Holiday.objects.filter(start_date__gte=date,
                                          end_date__lte=date)
    else:
        holidays = None

    return render_to_response(
        'worklog/workform.html', {
            'form': form,
            'reminder_id': reminder_id,
            'date': date,
            'items': rawitems,
            'column_names': list(t for k, t in _column_layout),
            'holidays': holidays
        },
        context_instance=RequestContext(request))
示例#2
0
    def test_previousItemsTable(self):
        job = Job.objects.filter(name="Job_Today")[0]
        item = WorkItem(user=self.user, date=self.today, hours=3,
                        text='My work today.', job=job)
        item.save()

        with self.scoped_login('master', 'password'):
            response = self.client.get('/worklog/' + str(self.today) + '/')

            self.assertEquals(len(response.context['items']),1)
            items = response.context['items']

            # order of columns depends on configuration, so just check that they exist
            self.assertTrue(job in items[0])
            self.assertTrue(self.user in items[0])
            self.assertTrue(3 in items[0])
示例#3
0
文件: views.py 项目: bmbouter/worklog
def createWorkItem(request, reminder_id=None):
    try:
        reminder,date = validate_reminder_id(request, reminder_id)
    except BadReminderId as e:
        resp = HttpResponse(e.args)
        resp['Worklog-UnableToCreateItem'] = '' # for testing purposes
        return resp
    
    if request.method == 'POST': # If the form has been submitted...
        form = WorkItemForm(request.POST, reminder=reminder, logged_in_user=request.user)
        if form.is_valid():
            # get form data
            hours = form.cleaned_data['hours']
            text = form.cleaned_data['text']
            job = form.cleaned_data['job']
            # create then save an item
            wi = WorkItem(user=request.user, date=date, hours=hours, text=text, job=job)
            wi.save()
            if 'submit_and_add_another' in request.POST:
                # redisplay workitem form so another item may be added
                return HttpResponseRedirect(request.path)
            else:
                if date==datetime.date.today():
                    return HttpResponseRedirect('/worklog/view/%s/today/' % request.user.username) # Redirect after POST
                else:
                    return HttpResponseRedirect('/worklog/view/%s/%s_%s/' % ( request.user.username, date, date))
    else:
        form = WorkItemForm(reminder=reminder, logged_in_user=request.user) # An unbound form
        
    items = WorkItem.objects.filter(date=date, user=request.user)
    rawitems = list(tuple(_itercolumns(item)) for item in items)

    if BiweeklyEmployee.objects.filter(user=request.user).count() > 0:
        holidays = Holiday.objects.filter(start_date__gte=date, end_date__lte=date)
    else:
        holidays = None

    return render_to_response('worklog/workform.html',
            {'form': form, 'reminder_id': reminder_id, 'date': date,
             'items': rawitems, 
             'column_names': list(t for k,t in _column_layout),
             'holidays': holidays
            },
            context_instance=RequestContext(request)
        )
示例#4
0
    def test_no_commit(self):

        for i in range(0, 30):

            repo = Repo.objects.all()[0]
            workitem = WorkItem()
            workitem.user = User.objects.all()[0]
            workitem.job = Job.objects.filter(available_all_users=True)[0]
            workitem.hours = 10
            workitem.date = datetime.date.today()
            workitem.repo = repo
            text = faker.sentence()
            workitem.text = text
            workitem.save()

            self.assertEquals(workitem.text, text)
示例#5
0
    def test_commit_hash_swap(self):

        repo = self.repos.pop()
        commit = repo.iter_commits().next()

        repo_obj = Repo()
        repo_obj.github_id = repo.id
        repo_obj.name = repo.name
        repo_obj.save()

        workitem = WorkItem()
        workitem.user = User.objects.all()[0]
        workitem.job = Job.objects.filter(available_all_users=True)[0]
        workitem.hours = 10
        workitem.date = datetime.date.today()
        workitem.repo = repo_obj
        workitem.text = 'commit ' + commit.sha + ' extra text'
        workitem.save()

        self.assertEquals(workitem.text, commit.commit.message + ' extra text')