Пример #1
0
    def test_dateconversion(self):
        sample = jdatetime.date(1389, 9, 2)

        d_check_with = jdatetime.date(1390, 2, 23)
        #TEST date
        self.assertEqual(True, sample.togregorian() ==
                         datetime.date(2010, 11, 23))
        self.assertEqual(True, jdatetime.date.fromgregorian(
                         date=datetime.date(2011, 5, 13)) == d_check_with)

        #TEST datetime
        self.assertEqual(True, jdatetime.datetime.fromgregorian(
                         datetime=datetime.datetime(2011, 5, 13)).date() ==
                         d_check_with)

        jd_datetime = jdatetime.datetime.fromgregorian(year=2011,
                                                       month=5,
                                                       day=13,
                                                       hour=14,
                                                       minute=15,
                                                       second=16)
        self.assertEqual(True, jd_datetime ==
                         jdatetime.datetime.combine(d_check_with,
                                                    jdatetime.time(14,
                                                                   15,
                                                                   16)))

        gdatetime = datetime.datetime(2011, 5, 13, 14, 15, 16)
        self.assertEqual(True, jd_datetime.togregorian() == gdatetime)
Пример #2
0
    def test_dateconversion(self):
        sample = jdatetime.date(1389, 9, 2)

        d_check_with = jdatetime.date(1390, 2, 23)
        #TEST date
        self.assertEqual(True,
                         sample.togregorian() == datetime.date(2010, 11, 23))
        self.assertEqual(
            True,
            jdatetime.date.fromgregorian(
                date=datetime.date(2011, 5, 13)) == d_check_with)

        #TEST datetime
        self.assertEqual(
            True,
            jdatetime.datetime.fromgregorian(datetime=datetime.datetime(
                2011, 5, 13)).date() == d_check_with)

        jd_datetime = jdatetime.datetime.fromgregorian(year=2011,
                                                       month=5,
                                                       day=13,
                                                       hour=14,
                                                       minute=15,
                                                       second=16)
        self.assertEqual(
            True, jd_datetime == jdatetime.datetime.combine(
                d_check_with, jdatetime.time(14, 15, 16)))

        gdatetime = datetime.datetime(2011, 5, 13, 14, 15, 16)
        self.assertEqual(True, jd_datetime.togregorian() == gdatetime)
Пример #3
0
def shift_from(date=None):
    if not date:
        now = jdatetime.datetime.now().astimezone(pytz.timezone('Asia/Tehran'))
        if now.minute <= 15:
            now = now.replace(minute=15)
        elif now.minute <= 30:
            now = now.replace(minute=30)
        elif now.minute <= 45:
            now = now.replace(minute=45)
        else:
            now = now.replace(minute=59) + jdatetime.timedelta(minutes=1)
        end_date = now + jdatetime.timedelta(days=7)
        date_ = now
    else:
        date_ = date
        end_date = date + jdatetime.timedelta(days=1)
    work_shift = WorkShift.objects.first()
    usual_day_start_morning = work_shift.usual_day_start_morning
    usual_day_start_morning = jdatetime.time(
        hour=usual_day_start_morning.hour,
        minute=usual_day_start_morning.minute)
    usual_day_start_afternoon = work_shift.usual_day_start_afternoon
    usual_day_start_afternoon = jdatetime.time(
        hour=usual_day_start_afternoon.hour,
        minute=usual_day_start_afternoon.minute)
    usual_day_end_morning = work_shift.usual_day_end_morning
    usual_day_end_morning = jdatetime.time(hour=usual_day_end_morning.hour,
                                           minute=usual_day_end_morning.minute)
    usual_day_end_afternoon = work_shift.usual_day_end_afternoon
    usual_day_end_afternoon = jdatetime.time(
        hour=usual_day_end_afternoon.hour,
        minute=usual_day_end_afternoon.minute)
    shifts = []
    last_shift = date_
    while last_shift <= end_date:
        if usual_day_start_morning <= last_shift.time() < usual_day_end_morning or \
                usual_day_start_afternoon <= last_shift.time() < usual_day_end_afternoon:
            shifts.append(
                last_shift.replace(second=0, microsecond=0).togregorian())
        last_shift = last_shift + jdatetime.timedelta(minutes=15)
    return shifts
Пример #4
0
 def is_in_work_shift(self):
     work_shift = WorkShift.objects.first()
     usual_day_start_morning = work_shift.usual_day_start_morning
     usual_day_start_morning = jdatetime.time(
         hour=usual_day_start_morning.hour,
         minute=usual_day_start_morning.minute)
     usual_day_start_afternoon = work_shift.usual_day_start_afternoon
     usual_day_start_afternoon = jdatetime.time(
         hour=usual_day_start_afternoon.hour,
         minute=usual_day_start_afternoon.minute)
     usual_day_end_morning = work_shift.usual_day_end_morning
     usual_day_end_morning = jdatetime.time(
         hour=usual_day_end_morning.hour,
         minute=usual_day_end_morning.minute)
     usual_day_end_afternoon = work_shift.usual_day_end_afternoon
     usual_day_end_afternoon = jdatetime.time(
         hour=usual_day_end_afternoon.hour,
         minute=usual_day_end_afternoon.minute)
     if (usual_day_start_morning <= self.start_at.time() < usual_day_end_morning) or \
             (usual_day_start_afternoon <= self.start_at.time() < usual_day_end_afternoon):
         return True
     return False
Пример #5
0
    def test_date_conversion_integer_input(self):
        d_check_with = jdatetime.date(1390, 2, 23)

        jd_datetime = jdatetime.datetime.fromgregorian(year=2011,
                                                       month=5,
                                                       day=13,
                                                       hour=14,
                                                       minute=15,
                                                       second=16)
        self.assertEqual(
            True, jd_datetime == jdatetime.datetime.combine(
                d_check_with, jdatetime.time(14, 15, 16)))

        gdatetime = datetime.datetime(2011, 5, 13, 14, 15, 16)
        self.assertEqual(True, jd_datetime.togregorian() == gdatetime)
Пример #6
0
def editArchiveItem(username, password, items):
    if checkForAdmin(username, password):
        number = 0
        for i in items:
            item = items[i]
            db_item = getArchiveItemById(item.get("id"))
            splitedTime = item.get("time").split(":")
            time = jdt.time(int(splitedTime[0]), int(splitedTime[1]))
            updatedRows = db_item.update(name=item.get("name"),
                                         desc=item.get("desc"),
                                         time=time,
                                         duration=int(item.get("duration")),
                                         itemType=item.get("type"),
                                         category=item.get("category"),
                                         url=item.get("url"))
            number = number + updatedRows
        if number == len(items):
            createLog("Admin edited items in archive successfully", items)
            return {
                "result": True,
                "code": 200,
                "desc": "all items updated successfully"
            }
        else:
            createLog("Admin failed to update some items in archive", {
                "number": str(len(items) - int(number)),
                "items": items
            })
            return {
                "result": True,
                "code": 608,
                "desc": str(len(items) - int(number)) + enums.getErrors(608)
            }
    else:
        createLog("User with this username tried to edit items in conductor ",
                  {
                      "username": username,
                      "items": items
                  })
        return {"result": False, "code": 666, "desc": "User is not admin"}
Пример #7
0
 def get_queryset(self):
     day = self.kwargs.get('day', '')
     now = jdatetime.datetime.now()
     now_t = now.time()
     now_d = now.date()
     if day == 'tomorrow':
         now_d = now_d + jdatetime.timedelta(days=1)
         now_t = jdatetime.time(5, 0)
     timefilter = ExcludeDate.objects.filter(
         Q(date=now_d) | Q(day=now_d.weekday()))
     timeservices = Time.objects.all().exclude(excludedate__in=timefilter)
     for t in timeservices:
         if t.strparse.hour <= now_t.hour:
             if t.strparse.hour == now_t.hour:
                 minutes = t.strparse.minute - now_t.minute
                 if minutes < 0:
                     minutes = minutes * -1
                 if minutes > 15:
                     timeservices = timeservices.exclude(pk=t.pk)
             else:
                 timeservices = timeservices.exclude(pk=t.pk)
     return timeservices.order_by('id')
Пример #8
0
def insertToArchive(username, password, items):
    if checkForAdmin(username, password):
        for i in items:
            item = items[i]
            splitedTime = item.get("time").split(":")
            time = jdt.time(int(splitedTime[0]), int(splitedTime[1]))
            newItem = models.Archive(name=item.get("name"),
                                     desc=item.get("desc"),
                                     time=time,
                                     duration=int(item.get("duration")),
                                     itemType=item.get("type"),
                                     category=item.get("category"),
                                     url=item.get("url"))
            try:
                newItem.save()
            except Exception as e:
                createLog("Admin failed to insert new item to archive", {
                    "error": e,
                    "items": items
                })
                return {
                    "result": False,
                    "code": 607,
                    "desc": str(e) + enums.getErrors(607)
                }
        createLog("Admin inserted items to conductor successfully", items)
        return {
            "result": True,
            "code": 200,
            "desc": "items inserted successfully"
        }
    else:
        createLog("User with this username tried to add items to archive ", {
            "username": username,
            "items": items
        })
        return {"result": False, "code": 666, "desc": enums.getErrors(666)}
Пример #9
0
    def test_combine(self):
        t = jdatetime.time(12, 13, 14)
        d = jdatetime.date(1390, 4, 5)
        dt = jdatetime.datetime(1390, 4, 5, 12, 13, 14)

        self.assertEqual(True, jdatetime.datetime.combine(d, t) == dt)
Пример #10
0
    def test_datetime(self):
        d = jdatetime.datetime(1390, 1, 2, 12, 13, 14)

        self.assertEqual(True, d.time() == jdatetime.time(12, 13, 14))
        self.assertEqual(True, d.date() == jdatetime.date(1390, 1, 2))
Пример #11
0
 def test_combine_keeps_date_locale(self):
     t = jdatetime.time(11, 20, 30)
     d = jdatetime.date(1397, 4, 24, locale='nl_NL')
     self.assertEqual(jdatetime.datetime.combine(d, t).locale, 'nl_NL')
Пример #12
0
    def test_combine(self):
        t = jdatetime.time(12, 13, 14)
        d = jdatetime.date(1390, 4, 5)
        dt = jdatetime.datetime(1390, 4, 5, 12, 13, 14)

        self.assertEqual(True, jdatetime.datetime.combine(d, t) == dt)
Пример #13
0
    def test_datetime(self):
        d = jdatetime.datetime(1390, 1, 2, 12, 13, 14)

        self.assertEqual(True, d.time() == jdatetime.time(12, 13, 14))
        self.assertEqual(True, d.date() == jdatetime.date(1390, 1, 2))
Пример #14
0
 def test_combine_keeps_date_locale(self):
     t = jdatetime.time(11, 20, 30)
     d = jdatetime.date(1397, 4, 24, locale='nl_NL')
     self.assertEqual(jdatetime.datetime.combine(d, t).locale, 'nl_NL')