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))
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])
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) )
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)
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')