Example #1
0
    def test_simpleduration_string(self):
        self.assertEqual(simpleduration_string(timedelta(0)), '')

        self.assertEqual(simpleduration_string(None), '')

        self.assertEqual(
            simpleduration_string(timedelta(days=2)),
            '48h')

        self.assertEqual(
            simpleduration_string(timedelta(days=2, hours=5)),
            '53h')

        self.assertEqual(
            simpleduration_string(timedelta(hours=2)),
            '2h')

        self.assertEqual(
            simpleduration_string(timedelta(hours=2, minutes=30)),
            '2h 30m')

        self.assertEqual(
            simpleduration_string(timedelta(hours=12)),
            '12h')

        self.assertEqual(
            simpleduration_string(timedelta(hours=12, seconds=45)),
            '12h 45s')

        self.assertEqual(
            simpleduration_string(timedelta(hours=1,
                                            minutes=15,
                                            seconds=40)),
            '1h 15m 40s')
Example #2
0
    def post(self, request):
        pid = request.POST.get('pid', None)
        task = request.POST.get('task', None)
        d = new_duration(request.POST.get('time', '1 hour'))
        client_uni = request.POST.get('client', '')
        completed = process_completed(request.POST.get('completed', ''))
        td = d.timedelta()
        # two required fields
        if None in [pid, task] or '' in [pid, task]:
            return HttpResponseBadRequest()

        project = get_object_or_404(Project, pid=pid)
        user = request.user.userprofile
        milestone = project.upcoming_milestone()
        item = Item.objects.create(milestone=milestone,
                                   type='action item',
                                   owner_user=user.user,
                                   assigned_user=user.user,
                                   title=task,
                                   status='VERIFIED',
                                   priority=1,
                                   target_date=milestone.target_date,
                                   last_mod=timezone.now(),
                                   estimated_time=td)
        if client_uni != '':
            r = Client.objects.filter(email=client_uni + "@columbia.edu")
            if r.count() > 0:
                item.add_clients([r[0]])
        item.add_resolve_time(user, td, completed)
        data = ItemSerializer(item, context={'request': request}).data
        data['duration'] = d.seconds
        data['simpleduration'] = simpleduration_string(td)
        return Response(data)
Example #3
0
File: views.py Project: ccnmtl/dmt
    def post(self, request):
        pid = request.POST.get('pid', None)
        task = request.POST.get('task', None)
        d = new_duration(request.POST.get('time', '1 hour'))
        client_uni = request.POST.get('client', '')
        completed = process_completed(request.POST.get('completed', ''))
        td = d.timedelta()
        # two required fields
        if None in [pid, task] or '' in [pid, task]:
            return HttpResponseBadRequest()

        project = get_object_or_404(Project, pid=pid)
        user = request.user.userprofile
        milestone = project.upcoming_milestone()
        item = Item.objects.create(
            milestone=milestone,
            type='action item',
            owner_user=user.user, assigned_user=user.user,
            title=task, status='VERIFIED',
            priority=1, target_date=milestone.target_date,
            last_mod=timezone.now(),
            estimated_time=td)
        if client_uni != '':
            r = Client.objects.filter(
                email=client_uni + "@columbia.edu")
            if r.count() > 0:
                item.add_clients([r[0]])
        item.add_resolve_time(user, td, completed)
        data = ItemSerializer(item, context={'request': request}).data
        data['duration'] = d.seconds
        data['simpleduration'] = simpleduration_string(td)
        return Response(data)
    def test_send_reminder(self):
        r = ReminderFactory(user=self.u.user)
        self.u.send_reminder(r)
        self.assertEqual(len(mail.outbox), 1)
        self.assertEqual(mail.outbox[0].subject,
                         '[PMT Reminder] {}'.format(r.item.title))

        expected_body = (
            'Reminder: This PMT item is due in {}:\n'.format(
                simpleduration_string(r.reminder_time)) +
            'https://pmt.ctl.columbia.edu{}'.format(r.item.get_absolute_url()))

        self.assertEqual(mail.outbox[0].body, expected_body)
Example #5
0
    def post(self, request, pk):
        duration_string = request.POST.get('time', '1 hour').strip()
        d = new_duration(duration_string)

        if d is not None:
            td = d.timedelta()
            item = get_object_or_404(Item, iid=pk)
            user = request.user.userprofile
            item.add_resolve_time(user, td)
            return Response(
                {
                    'duration': d.seconds,
                    'simpleduration': simpleduration_string(td),
                },
                status=201)

        return Response({'duration': None}, status=200)
Example #6
0
File: views.py Project: ccnmtl/dmt
    def post(self, request, pk):
        duration_string = request.POST.get('time', '1 hour').strip()
        d = new_duration(duration_string)

        if d is not None:
            td = d.timedelta()
            item = get_object_or_404(Item, iid=pk)
            user = request.user.userprofile
            item.add_resolve_time(user, td)
            return Response({
                'duration': d.seconds,
                'simpleduration': simpleduration_string(td),
            }, status=201)

        return Response({
            'duration': None
        }, status=200)
Example #7
0
    def test_simpleduration_string(self):
        self.assertEqual(simpleduration_string(timedelta(0)), '')

        self.assertEqual(simpleduration_string(None), '')

        self.assertEqual(simpleduration_string(timedelta(days=2)), '48h')

        self.assertEqual(simpleduration_string(timedelta(days=2, hours=5)),
                         '53h')

        self.assertEqual(simpleduration_string(timedelta(hours=2)), '2h')

        self.assertEqual(simpleduration_string(timedelta(hours=2, minutes=30)),
                         '2h 30m')

        self.assertEqual(simpleduration_string(timedelta(hours=12)), '12h')

        self.assertEqual(
            simpleduration_string(timedelta(hours=12, seconds=45)), '12h 45s')

        self.assertEqual(
            simpleduration_string(timedelta(hours=1, minutes=15, seconds=40)),
            '1h 15m 40s')
Example #8
0
 def prepare_value(self, value):
     try:
         return simpleduration_string(value)
     except AttributeError:
         return simpleduration_string(self.clean(value))
Example #9
0
def simpleduration(duration):
    return utils.simpleduration_string(duration)