예제 #1
0
파일: models.py 프로젝트: coati-00/dmt
 def add_item(self, type='action item', title="",
              assigned_to=None, owner=None, milestone=None,
              priority=1, description="", estimated_time="1 hour",
              status='OPEN', r_status='',
              tags=None):
     try:
         d = Duration(estimated_time)
     except InvalidDuration:
         d = Duration("0 minutes")
     td = d.timedelta()
     item = Item.objects.create(
         milestone=milestone,
         type=type,
         owner=owner,
         assigned_to=assigned_to,
         title=title,
         priority=priority,
         status=status,
         r_status=r_status,
         estimated_time=td,
         target_date=milestone.target_date,
         last_mod=datetime.now(),
         description=description)
     item.add_event('OPEN', owner, "<b>%s added</b>" % type)
     if tags:
         item.tags.add(*tags)
     item.setup_default_notification()
     item.add_project_notification()
     item.update_email("%s added" % type, owner)
     milestone.update_milestone()
예제 #2
0
 def post(self, request):
     iid = request.POST.get('iid', None)
     item = get_object_or_404(Item, iid=iid)
     email = request.POST.get('email', None)
     email = normalize_email(email)
     user = get_object_or_404(UserProfile, email=email)
     status = request.POST.get('status', '')
     resolve_time = request.POST.get('resolve_time', '')
     comment = request.POST.get('comment', '')
     if status == 'FIXED':
         item.status = 'RESOLVED'
         item.r_status = 'FIXED'
         item.add_event("RESOLVED", user, comment)
         item.save()
         item.update_email(
             "%s $%d %s updated\n%s\n" %
             (item.type, item.iid, item.title, comment), user)
     elif comment != "":
         item.add_comment(user, comment, comment)
         item.update_email(
             "comment added to %s $%d %s updated\n%s\n" %
             (item.type, item.iid, item.title, comment), user)
     if resolve_time != "":
         try:
             d = Duration(resolve_time)
             td = d.timedelta()
             item.add_resolve_time(user, td)
         except InvalidDuration:
             # eventually, this needs to get back to the user
             # via form validation, but for now
             # we just deal with it...
             pass
     item.save()
     data = ItemSerializer(item, context={'request': request}).data
     return Response(data)
예제 #3
0
 def calculate_duration(self):
     try:
         dur = Duration(self.duration_text)
         dur_td = dur.timedelta()
         self.duration = dur_td
     except InvalidDuration:
         pass
예제 #4
0
def log_time(item, user, request):
    t = request.POST.get('time', False)
    if t:
        try:
            d = Duration(request.POST.get('time', "1 hour"))
            td = d.timedelta()
            item.add_resolve_time(user, td)
        except InvalidDuration:
            pass
예제 #5
0
파일: views.py 프로젝트: coati-00/dmt
def log_time(item, user, request):
    t = request.POST.get('time', False)
    if t:
        try:
            d = Duration(request.POST.get('time', "1 hour"))
            td = d.timedelta()
            item.add_resolve_time(user, td)
        except InvalidDuration:
            pass
예제 #6
0
파일: views.py 프로젝트: coati-00/dmt
    def post(self, request, pk):
        item = get_object_or_404(Item, iid=pk)
        user = get_object_or_404(Claim, django_user=request.user).pmt_user
        try:
            d = Duration(request.POST.get('time', "1 hour"))
        except InvalidDuration:
            # eventually, this needs to get back to the user
            # via form validation, but for now
            # we just deal with it...
            d = Duration("0 minutes")

        td = d.timedelta()
        item.add_resolve_time(user, td)
        return HttpResponse("ok")
예제 #7
0
    def post(self, request, pk):
        item = get_object_or_404(Item, iid=pk)
        user = get_object_or_404(Claim, django_user=request.user).pmt_user
        try:
            d = Duration(request.POST.get('time', "1 hour"))
        except InvalidDuration:
            # eventually, this needs to get back to the user
            # via form validation, but for now
            # we just deal with it...
            d = Duration("0 minutes")

        td = d.timedelta()
        item.add_resolve_time(user, td)
        return HttpResponse("ok")
예제 #8
0
파일: views.py 프로젝트: ccnmtl/dmt
 def post(self, request):
     iid = request.POST.get('iid', None)
     item = get_object_or_404(Item, iid=iid)
     email = request.POST.get('email', None)
     email = normalize_email(email)
     user = get_object_or_404(UserProfile, email=email)
     status = request.POST.get('status', '')
     resolve_time = request.POST.get('resolve_time', '')
     comment = request.POST.get('comment', '')
     if status == 'FIXED':
         item.status = 'RESOLVED'
         item.r_status = 'FIXED'
         item.add_event("RESOLVED", user, comment)
         item.save()
         item.update_email(
             "%s $%d %s updated\n%s\n" % (
                 item.type, item.iid, item.title, comment),
             user)
     elif comment != "":
         item.add_comment(user, comment, comment)
         item.update_email(
             "comment added to %s $%d %s updated\n%s\n" % (
                 item.type, item.iid, item.title, comment),
             user)
     if resolve_time != "":
         try:
             d = Duration(resolve_time)
             td = d.timedelta()
             item.add_resolve_time(user, td)
         except InvalidDuration:
             # eventually, this needs to get back to the user
             # via form validation, but for now
             # we just deal with it...
             pass
     item.save()
     data = ItemSerializer(item, context={'request': request}).data
     return Response(data)
예제 #9
0
    def post(self, request):
        pid = request.POST.get('pid', None)
        task = request.POST.get('task', None)
        try:
            d = Duration(request.POST.get('time', "1 hour"))
        except InvalidDuration:
            # eventually, this needs to get back to the user
            # via form validation, but for now
            # we just deal with it...
            d = Duration("0 minutes")
        client_uni = request.POST.get('client', '')

        td = d.timedelta()
        # two required fields
        if None in [pid, task]:
            return HttpResponse("bad request")

        project = get_object_or_404(Project, pid=pid)
        user = get_object_or_404(Claim, django_user=request.user).pmt_user
        milestone = project.upcoming_milestone()
        item = Item.objects.create(milestone=milestone,
                                   type='action item',
                                   owner=user,
                                   assigned_to=user,
                                   title=task,
                                   status='VERIFIED',
                                   priority=1,
                                   target_date=milestone.target_date,
                                   estimated_time=td)
        if client_uni != '':
            r = Client.objects.filter(email=client_uni + "@columbia.edu")
            if r.count() > 0:
                item.add_clients([r[0]])
            else:
                pass
        item.add_resolve_time(user, td)
        return HttpResponse("ok")
예제 #10
0
파일: models.py 프로젝트: djredhand/dmt
 def add_item(self,
              type='action item',
              title="",
              assigned_to=None,
              owner=None,
              milestone=None,
              priority=1,
              description="",
              estimated_time="1 hour",
              status='OPEN',
              r_status='',
              tags=None):
     try:
         d = Duration(estimated_time)
     except InvalidDuration:
         d = Duration("0 minutes")
     td = d.timedelta()
     item = Item.objects.create(milestone=milestone,
                                type=type,
                                owner=owner,
                                assigned_to=assigned_to,
                                title=title,
                                priority=priority,
                                status=status,
                                r_status=r_status,
                                estimated_time=td,
                                target_date=milestone.target_date,
                                last_mod=datetime.now(),
                                description=description)
     item.add_event('OPEN', owner, "<b>%s added</b>" % type)
     if tags:
         item.tags.add(*tags)
     item.setup_default_notification()
     item.add_project_notification()
     item.update_email("%s added" % type, owner)
     milestone.update_milestone()
예제 #11
0
파일: views.py 프로젝트: coati-00/dmt
    def post(self, request):
        pid = request.POST.get('pid', None)
        task = request.POST.get('task', None)
        try:
            d = Duration(request.POST.get('time', "1 hour"))
        except InvalidDuration:
            # eventually, this needs to get back to the user
            # via form validation, but for now
            # we just deal with it...
            d = Duration("0 minutes")
        client_uni = request.POST.get('client', '')

        td = d.timedelta()
        # two required fields
        if None in [pid, task]:
            return HttpResponse("bad request")

        project = get_object_or_404(Project, pid=pid)
        user = get_object_or_404(Claim, django_user=request.user).pmt_user
        milestone = project.upcoming_milestone()
        item = Item.objects.create(
            milestone=milestone,
            type='action item',
            owner=user, assigned_to=user,
            title=task, status='VERIFIED',
            priority=1, target_date=milestone.target_date,
            estimated_time=td)
        if client_uni != '':
            r = Client.objects.filter(
                email=client_uni + "@columbia.edu")
            if r.count() > 0:
                item.add_clients([r[0]])
            else:
                pass
        item.add_resolve_time(user, td)
        return HttpResponse("ok")
예제 #12
0
    def clean(self):
        cleaned_data = super().clean()
        start_data = cleaned_data.get('start_datetime')
        duration_text = cleaned_data.get('duration_text')
        duration_worked = False

        try:
            dur = Duration(duration_text)
            dur_td = dur.timedelta()
            duration = dur_td
            end_data = start_data + duration
            qs1 = Reservation.objects.filter(start_datetime__lte=end_data, end_datetime__gte=start_data)
            duration_worked = True
        except InvalidDuration:
            pass

        if duration_worked == False:
            raise forms.ValidationError('Esta duracion no es valida')

        elif start_data < timezone.now():
            raise forms.ValidationError('No puedes agendar una reunion para el pasado')

        elif qs1.exists():
            raise forms.ValidationError('Ya hay una reunion que empiza o termina en el momento seleccionado')
예제 #13
0
 def test_combined_cases(self):
     for s, expected in COMBINED_TEST_CASES:
         d = Duration(s)
         self.assertEqual(int(d.timedelta().total_seconds()), expected)
예제 #14
0
 def test_single_cases(self):
     for s, expected in SINGLE_TEST_CASES:
         d = Duration(s)
         self.assertEqual(int(d.timedelta().total_seconds()), expected)