Ejemplo n.º 1
0
def threadProcessNumeroSorteo():
    threading.Timer(60.0, threadProcessNumeroSorteo).start()
    d = datetime.now()
    print('Process run numero % s ' % d)
    if 8 < d.hour < 19:
        try:
            if d.time().minute >= 55:
                hora = time(d.hour + 1, 0, 0)
            else:
                hora = time(d.hour, d.minute + 5, 0)

            init = time(7, 0, 0)
            end = time(d.hour, d.minute, d.second)
            sorteo = Sorteo.objects.get(fecha_sorteo=d.date(),
                                        sorteoHoras__hora_sorteo=hora)
            ventas = Venta.objects.filter(fecha=d.date(),
                                          time__gte=init,
                                          time__lte=end)
            estado_sistema = EstadoSistema.objects.get(nombre='activar venta')
            estado_sistema.estado = False
            estado_sistema.save()
            n = 0
            if sorteo.numero_ganador == 0:
                if len(ventas) != 0:
                    detalles = lista_ventas(ventas, sorteo)
                    list_elements = lista_items(detalles)
                    rifa_detalles = RifaLista.objects.filter(
                        rifa__id=sorteo.rifa.id)
                    valores = []
                    for item in rifa_detalles:
                        sum_val = 0
                        for element in list_elements:
                            if item.id == element.detalle_rifa.id:
                                sum_val = sum_val + element.valor_apuesta
                        valores.append((int(item.id), int(sum_val)))

                    min_val_tuple = minVal(valores)
                    win = RifaLista.objects.get(id=min_val_tuple[0])
                    n = win.posicion
                    print('numero ganador con items en venta %s' % n)
                else:
                    n = random.randint(1, 36)
                    print('numero ganado sin items en venta %s' % n)

                sorteo.numero_ganador = n
                sorteo.save()
                jugadasGanadoras(ventas, sorteo)

            else:
                print('este sorteo ya se jugó')
        except Exception as e:
            print(e)
            estado_sistema = EstadoSistema.objects.get(nombre='activar venta')
            estado_sistema.estado = True
            estado_sistema.save()
    else:
        print(d)
Ejemplo n.º 2
0
    def test_safe_strftime(self):
        self.assertEqual(
            date(*self.just_unsafe[:3]).strftime('%Y-%m-%d (weekday %w)'),
            '1899-12-31 (weekday 0)')
        self.assertEqual(
            date(*self.just_safe).strftime('%Y-%m-%d (weekday %w)'),
            '1900-01-01 (weekday 1)')

        self.assertEqual(
            datetime(
                *self.just_unsafe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)'),
            '1899-12-31 23:59:59 (weekday 0)')
        self.assertEqual(
            datetime(
                *self.just_safe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)'),
            '1900-01-01 00:00:00 (weekday 1)')

        self.assertEqual(
            time(*self.just_time).strftime('%H:%M:%S AM'), '11:30:59 AM')

        # %y will error before this date
        self.assertEqual(date(*self.just_safe).strftime('%y'), '00')
        self.assertEqual(datetime(*self.just_safe).strftime('%y'), '00')

        self.assertEqual(
            date(1850, 8, 2).strftime("%Y/%m/%d was a %A"),
            '1850/08/02 was a Friday')
Ejemplo n.º 3
0
    def test_combined_times_all_from_line2(self):
        date = timezone.now().replace(hour=17, minute=1)
        day = dayname(date)

        self.station1.register_daily_times([day], [time(11, 1), time(11, 11), time(11, 21), time(11, 31)])
        self.station2.register_daily_times([day], [time(17, 6), time(17, 26), time(17, 46), time(18, 6)])

        times = self._linetimes(self.location.next_daily_times(date))

        expected = [
            (self.line2, time(17, 6)),
            (self.line2, time(17, 26)),
            (self.line2, time(17, 46)),
            (self.line2, time(18, 6)),
        ]
        self.assertEquals(expected, times)
Ejemplo n.º 4
0
    def test_safe_strftime(self):
        self.assertEqual(
            date(*self.just_unsafe[:3]).strftime('%Y-%m-%d (weekday %w)'),
            '0999-12-31 (weekday 2)')
        self.assertEqual(
            date(*self.just_safe).strftime('%Y-%m-%d (weekday %w)'),
            '1000-01-01 (weekday 3)')

        self.assertEqual(
            datetime(
                *self.just_unsafe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)'),
            '0999-12-31 23:59:59 (weekday 2)')
        self.assertEqual(
            datetime(
                *self.just_safe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)'),
            '1000-01-01 00:00:00 (weekday 3)')

        self.assertEqual(
            time(*self.just_time).strftime('%H:%M:%S AM'), '11:30:59 AM')

        # %y will error before this date
        self.assertEqual(date(*self.percent_y_safe).strftime('%y'), '00')
        self.assertEqual(datetime(*self.percent_y_safe).strftime('%y'), '00')
        with self.assertRaisesMessage(
                TypeError, 'strftime of dates before 1000 does not handle %y'):
            datetime(*self.just_unsafe).strftime('%y')

        self.assertEqual(
            date(1850, 8, 2).strftime("%Y/%m/%d was a %A"),
            '1850/08/02 was a Friday')
Ejemplo n.º 5
0
 def test_serialize_datetime_safe(self):
     self.assertSerializedResultEqual(datetime_safe.date(
         2014, 3, 31), ("datetime.date(2014, 3, 31)", {'import datetime'}))
     self.assertSerializedResultEqual(datetime_safe.time(
         10, 25), ("datetime.time(10, 25)", {'import datetime'}))
     self.assertSerializedResultEqual(
         datetime_safe.datetime(2014, 3, 31, 16, 4, 31),
         ("datetime.datetime(2014, 3, 31, 16, 4, 31)", {'import datetime'}))
Ejemplo n.º 6
0
 def test_serialize_datetime_safe(self):
     self.assertSerializedResultEqual(
         datetime_safe.date(2014, 3, 31), ("datetime.date(2014, 3, 31)", {"import datetime"})
     )
     self.assertSerializedResultEqual(datetime_safe.time(10, 25), ("datetime.time(10, 25)", {"import datetime"}))
     self.assertSerializedResultEqual(
         datetime_safe.datetime(2014, 3, 31, 16, 4, 31),
         ("datetime.datetime(2014, 3, 31, 16, 4, 31)", {"import datetime"}),
     )
Ejemplo n.º 7
0
    def test_compare_datetimes(self):
        self.assertEqual(original_datetime(*self.more_recent), datetime(*self.more_recent))
        self.assertEqual(original_datetime(*self.really_old), datetime(*self.really_old))
        self.assertEqual(original_date(*self.more_recent), date(*self.more_recent))
        self.assertEqual(original_date(*self.really_old), date(*self.really_old))

        self.assertEqual(original_date(*self.just_safe).strftime('%Y-%m-%d'), date(*self.just_safe).strftime('%Y-%m-%d'))
        self.assertEqual(original_datetime(*self.just_safe).strftime('%Y-%m-%d'), datetime(*self.just_safe).strftime('%Y-%m-%d'))

        self.assertEqual(original_time(*self.just_time).strftime('%H:%M:%S'), time(*self.just_time).strftime('%H:%M:%S'))
Ejemplo n.º 8
0
    def test_combined_times_all_from_line1(self):
        date = timezone.now().date()
        day = dayname(date)

        other_date = date + timedelta(days=1)
        other_day = dayname(other_date)

        self.station1.register_daily_times([day], [time(17, 1), time(17, 11), time(17, 21), time(17, 31)])
        self.station2.register_daily_times([other_day], [time(17, 6), time(17, 26), time(17, 46), time(18, 6)])

        times = self._linetimes(self.location.next_daily_times(date))

        expected = [
            (self.line1, time(17, 1)),
            (self.line1, time(17, 11)),
            (self.line1, time(17, 21)),
            (self.line1, time(17, 31)),
        ]
        self.assertEquals(expected, times)
Ejemplo n.º 9
0
    def test_safe_strftime(self):
        self.assertEqual(date(*self.just_unsafe[:3]).strftime('%Y-%m-%d (weekday %w)'), '1899-12-31 (weekday 0)')
        self.assertEqual(date(*self.just_safe).strftime('%Y-%m-%d (weekday %w)'), '1900-01-01 (weekday 1)')

        self.assertEqual(datetime(*self.just_unsafe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)'), '1899-12-31 23:59:59 (weekday 0)')
        self.assertEqual(datetime(*self.just_safe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)'), '1900-01-01 00:00:00 (weekday 1)')

        self.assertEqual(time(*self.just_time).strftime('%H:%M:%S AM'), '11:30:59 AM')

        # %y will error before this date
        self.assertEqual(date(*self.just_safe).strftime('%y'), '00')
        self.assertEqual(datetime(*self.just_safe).strftime('%y'), '00')

        self.assertEqual(date(1850, 8, 2).strftime("%Y/%m/%d was a %A"), '1850/08/02 was a Friday')
Ejemplo n.º 10
0
    def test_compare_datetimes(self):
        self.assertEqual(original_datetime(*self.more_recent), datetime(*self.more_recent))
        self.assertEqual(original_datetime(*self.really_old), datetime(*self.really_old))
        self.assertEqual(original_date(*self.more_recent), date(*self.more_recent))
        self.assertEqual(original_date(*self.really_old), date(*self.really_old))

        self.assertEqual(
            original_date(*self.just_safe).strftime('%Y-%m-%d'), date(*self.just_safe).strftime('%Y-%m-%d')
        )
        self.assertEqual(
            original_datetime(*self.just_safe).strftime('%Y-%m-%d'), datetime(*self.just_safe).strftime('%Y-%m-%d')
        )

        self.assertEqual(
            original_time(*self.just_time).strftime('%H:%M:%S'), time(*self.just_time).strftime('%H:%M:%S')
        )
Ejemplo n.º 11
0
    def setUp(self):
        self.professional = User.objects.get(pk=3)
        self.final = User.objects.get(pk=4)

        self.hire_service_1 = HireService.objects.create(
            client=self.final,
            professional=self.professional,
            date=datetime.now() + timedelta(days=2),
            time=time(),
            address='address',
            city='city',
            region='region',
            zip_code='zip_code',
            country='country',
            status=PENDING)
        self.hire_service_1.total = Money(100, 'EUR')
        self.hire_service_1.save()

        self.hire_service_2 = HireService.objects.create(
            client=self.final,
            professional=self.professional,
            date=datetime.now() + timedelta(hours=13),
            time=datetime.now() + timedelta(hours=13),
            address='address',
            city='city',
            region='region',
            zip_code='zip_code',
            country='country',
            status=PENDING)
        self.hire_service_2.total = Money(200, 'EUR')
        self.hire_service_2.save()

        self.hire_service_3 = HireService.objects.create(
            client=self.final,
            professional=self.professional,
            date=datetime.now() + timedelta(hours=11),
            time=datetime.now() + timedelta(hours=11),
            address='address',
            city='city',
            region='region',
            zip_code='zip_code',
            country='country',
            status=PENDING)
        self.hire_service_3.total = Money(300, 'EUR')
        self.hire_service_3.save()
Ejemplo n.º 12
0
    def test_safe_strftime(self):
        self.assertEqual(date(*self.just_unsafe[:3]).strftime('%Y-%m-%d (weekday %w)'), '0999-12-31 (weekday 2)')
        self.assertEqual(date(*self.just_safe).strftime('%Y-%m-%d (weekday %w)'), '1000-01-01 (weekday 3)')

        self.assertEqual(
            datetime(*self.just_unsafe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)'), '0999-12-31 23:59:59 (weekday 2)'
        )
        self.assertEqual(
            datetime(*self.just_safe).strftime('%Y-%m-%d %H:%M:%S (weekday %w)'), '1000-01-01 00:00:00 (weekday 3)'
        )

        self.assertEqual(time(*self.just_time).strftime('%H:%M:%S AM'), '11:30:59 AM')

        # %y will error before this date
        self.assertEqual(date(*self.percent_y_safe).strftime('%y'), '00')
        self.assertEqual(datetime(*self.percent_y_safe).strftime('%y'), '00')
        with self.assertRaisesMessage(TypeError, 'strftime of dates before 1000 does not handle %y'):
            datetime(*self.just_unsafe).strftime('%y')

        self.assertEqual(date(1850, 8, 2).strftime("%Y/%m/%d was a %A"), '1850/08/02 was a Friday')
Ejemplo n.º 13
0
def tiketsGanadores(ventas, sorteo):
    d = datetime.now()
    hora = time(d.hour, d.minute + 5, 0)
    for v in ventas:
        sum_ganadores = 0
        sum_items = 0
        ventasDetalles = VentaDetalle.objects.filter(venta=v)
        for item in ventasDetalles:
            if item.sorteo == sorteo:
                sum_items += 1
                if item.estado == 'GANADO':
                    sum_ganadores += 1

        if len(ventasDetalles) == sum_items:
            if sum_ganadores > 0:
                v.estado = 'GANADO'
            elif sum_ganadores == 0:
                v.estado = 'PERDIDO'
            v.save()
        else:
            print('Todavia hay items en juegos %s' % v.id)
Ejemplo n.º 14
0
class TestMemModel(MemModel):
    pkey = models.IntegerField(primary_key=True)
    title = models.CharField(max_length=50, verbose_name='Title')
    content = models.TextField(blank=True, null=True)
    floatval = models.FloatField()
    urlval = models.URLField()
    boolval = models.BooleanField(default=False)
    bintval = models.BigIntegerField(verbose_name='BigIntegerField')
    dateval = models.DateField(default=datetime.today)
    dtval = models.DateTimeField(default=timezone.now)
    timeval = models.TimeField(default=time(16, 0))
    emailval = models.EmailField()
    pintval = models.PositiveIntegerField(default=200)
    psintval = models.PositiveSmallIntegerField()
    sintval = models.SmallIntegerField()
    uuidval = models.UUIDField(default=uuid.uuid4)

    def __str__(self):
        result = []
        for field in self._meta.local_fields:
            result.append('%s(%s)' % (field.name, getattr(self, field.name)))
        return ', '.join(result)
Ejemplo n.º 15
0
 def test_time_gte_last_for_last(self):
     times = [time(0, 0), time(5, 5), time(7, 7)]
     self.assertEquals(times[-1:], times_gte(times, times[-1]))
Ejemplo n.º 16
0
def display_date(date, format='%Y-%m-%d'):
    return display_time(make_aware(datetime.combine(date, time())), format)
Ejemplo n.º 17
0
 def test_serialize(self):
     """
     Tests various different forms of the serializer.
     This does not care about formatting, just that the parsed result is
     correct, so we always exec() the result and check that.
     """
     # Basic values
     self.assertSerializedEqual(1)
     self.assertSerializedEqual(1.2)
     self.assertTrue(math.isinf(self.serialize_round_trip(float("inf"))))
     self.assertTrue(math.isinf(self.serialize_round_trip(float("-inf"))))
     self.assertTrue(math.isnan(self.serialize_round_trip(float("nan"))))
     self.assertSerializedEqual(None)
     self.assertSerializedEqual(b"foobar")
     string, imports = MigrationWriter.serialize(b"foobar")
     self.assertEqual(string, "b'foobar'")
     self.assertSerializedEqual("föobár")
     string, imports = MigrationWriter.serialize("foobar")
     self.assertEqual(string, "'foobar'")
     self.assertSerializedEqual({1: 2})
     self.assertSerializedEqual(["a", 2, True, None])
     self.assertSerializedEqual({2, 3, "eighty"})
     self.assertSerializedEqual({"lalalala": ["yeah", "no", "maybe"]})
     self.assertSerializedEqual(_('Hello'))
     # Builtins
     self.assertSerializedEqual([list, tuple, dict, set])
     string, imports = MigrationWriter.serialize([list, tuple, dict, set])
     self.assertEqual(string, "[list, tuple, dict, set]")
     self.assertEqual(imports, set())
     # Functions
     with six.assertRaisesRegex(self, ValueError,
                                'Cannot serialize function: lambda'):
         self.assertSerializedEqual(lambda x: 42)
     self.assertSerializedEqual(models.SET_NULL)
     string, imports = MigrationWriter.serialize(models.SET(42))
     self.assertEqual(string, 'models.SET(42)')
     self.serialize_round_trip(models.SET(42))
     # Datetime stuff
     self.assertSerializedEqual(datetime.datetime.utcnow())
     self.assertSerializedEqual(datetime.datetime.utcnow)
     self.assertSerializedEqual(datetime.datetime.today())
     self.assertSerializedEqual(datetime.datetime.today)
     self.assertSerializedEqual(datetime.date.today())
     self.assertSerializedEqual(datetime.date.today)
     self.assertSerializedEqual(datetime.datetime.now().time())
     self.assertSerializedEqual(
         datetime.datetime(2014, 1, 1, 1, 1, tzinfo=get_default_timezone()))
     self.assertSerializedEqual(
         datetime.datetime(2014, 1, 1, 1, 1, tzinfo=FixedOffset(180)))
     safe_date = datetime_safe.date(2014, 3, 31)
     string, imports = MigrationWriter.serialize(safe_date)
     self.assertEqual(string, repr(datetime.date(2014, 3, 31)))
     self.assertEqual(imports, {'import datetime'})
     safe_time = datetime_safe.time(10, 25)
     string, imports = MigrationWriter.serialize(safe_time)
     self.assertEqual(string, repr(datetime.time(10, 25)))
     self.assertEqual(imports, {'import datetime'})
     safe_datetime = datetime_safe.datetime(2014, 3, 31, 16, 4, 31)
     string, imports = MigrationWriter.serialize(safe_datetime)
     self.assertEqual(string,
                      repr(datetime.datetime(2014, 3, 31, 16, 4, 31)))
     self.assertEqual(imports, {'import datetime'})
     timezone_aware_datetime = datetime.datetime(2012,
                                                 1,
                                                 1,
                                                 1,
                                                 1,
                                                 tzinfo=utc)
     string, imports = MigrationWriter.serialize(timezone_aware_datetime)
     self.assertEqual(string,
                      "datetime.datetime(2012, 1, 1, 1, 1, tzinfo=utc)")
     self.assertEqual(
         imports,
         {'import datetime', 'from django.utils.timezone import utc'})
     # Django fields
     self.assertSerializedFieldEqual(models.CharField(max_length=255))
     self.assertSerializedFieldEqual(models.TextField(null=True,
                                                      blank=True))
     # Setting references
     self.assertSerializedEqual(
         SettingsReference(settings.AUTH_USER_MODEL, "AUTH_USER_MODEL"))
     self.assertSerializedResultEqual(
         SettingsReference("someapp.model", "AUTH_USER_MODEL"), (
             "settings.AUTH_USER_MODEL",
             {"from django.conf import settings"},
         ))
     self.assertSerializedResultEqual(((x, x * x) for x in range(3)), (
         "((0, 0), (1, 1), (2, 4))",
         set(),
     ))
Ejemplo n.º 18
0
def set_number_sorteo():
    d = datetime.now()
    print('sorteo en proceso %s ' % d)
    if 7 < d.hour < 23:
        try:
            if d.minute >= 55:
                hora = time(d.hour + 1, 0, 0)
            else:
                hora = time(d.hour, d.minute + 5, 0)

            # CronTabLog.objects.create(hora=d.time(), descripcion=hora)
            # init = time(7, 0, 0)
            # end = time(d.hour, d.minute, d.second)
            # n = 0
            sorteo = Sorteo.objects.get(fecha_sorteo=d.date(), sorteoHoras__hora_sorteo=hora)
            ventas = Venta.objects.filter(fecha=d.date(), estado='EN JUEGO')
            estado_sistema = EstadoSistema.objects.get(nombre='activar venta')
            estado_sistema.estado = False
            estado_sistema.save()
            if sorteo.numero_ganador == 0:
                if len(ventas) != 0:
                    first_day = datetime.now().replace(day=1)
                    now = datetime.now()
                    total_venta_value = 0
                    total_ganancia_value = 0
                    total_venta = Venta.objects.filter(fecha__gte=first_day, fecha__lte=now)

                    for v in total_venta:
                        total_venta_value += v.total_apostado
                        if v.estado == 'GANADO' or v.estado == 'PAGADO':
                            total_ganancia_value += v.total_ganancia

                    # apuesta_unica = False
                    total_ganancia = total_venta_value - total_ganancia_value
                    porcentaje_ganancias = float(total_ganancia_value) / float(total_venta_value)
                    detalles = lista_ventas(ventas, sorteo)
                    list_elements = lista_items(detalles)
                    dict_valores = get_values_bet(list_elements)
                    direct_values = get_direct_bets(list_elements)
                    direct_values_no_bet = get_direct_no_bet(list_elements)
                    list_directs = get_directs_list(list_elements)
                    min_val_tuple = min_val(dict_valores)
                    n = get_number_winner(min_val_tuple, direct_values, list_directs, direct_values_no_bet,
                                          total_ganancia, porcentaje_ganancias)
                    CronTabLog.objects.create(hora=d.time(), descripcion='numero ganador con items en venta %s' % n)
                else:
                    n = random.randint(1, 36)
                    # print(n)
                    CronTabLog.objects.create(hora=d.time(), descripcion='numero ganador sin items en venta %s' % n)
                sorteo.numero_ganador = n
                sorteo.save()
                jugadas_ganadoras(ventas, sorteo)
                tikets_ganadores(ventas, sorteo)

                # new code
                estado_sistema = EstadoSistema.objects.get(nombre='activar venta')
                if estado_sistema.estado is not True:
                    estado_sistema.estado = True
                    estado_sistema.save()
                    # new code
            else:
                # CronTabLog.objects.create(hora=d.time(), descripcion='este sorteo ya se jugó')
                # print('este sorteo ya se jugó')
                # new code
                estado_sistema = EstadoSistema.objects.get(nombre='activar venta')
                if estado_sistema.estado is not True:
                    estado_sistema.estado = True
                    estado_sistema.save()
                    # new code
        except Exception as e:
            print (e.message)
            CronTabLog.objects.create(hora=d.time(), descripcion=e.message)
            estado_sistema = EstadoSistema.objects.get(nombre='activar venta')
            if estado_sistema.estado is not True:
                estado_sistema.estado = True
                estado_sistema.save()
    else:
        print(d)
Ejemplo n.º 19
0
 def test_serialize(self):
     """
     Tests various different forms of the serializer.
     This does not care about formatting, just that the parsed result is
     correct, so we always exec() the result and check that.
     """
     # Basic values
     self.assertSerializedEqual(1)
     self.assertSerializedEqual(1.2)
     self.assertTrue(math.isinf(self.serialize_round_trip(float("inf"))))
     self.assertTrue(math.isinf(self.serialize_round_trip(float("-inf"))))
     self.assertTrue(math.isnan(self.serialize_round_trip(float("nan"))))
     self.assertSerializedEqual(None)
     self.assertSerializedEqual(b"foobar")
     string, imports = MigrationWriter.serialize(b"foobar")
     self.assertEqual(string, "b'foobar'")
     self.assertSerializedEqual("föobár")
     string, imports = MigrationWriter.serialize("foobar")
     self.assertEqual(string, "'foobar'")
     self.assertSerializedEqual({1: 2})
     self.assertSerializedEqual(["a", 2, True, None])
     self.assertSerializedEqual({2, 3, "eighty"})
     self.assertSerializedEqual({"lalalala": ["yeah", "no", "maybe"]})
     self.assertSerializedEqual(_('Hello'))
     # Builtins
     self.assertSerializedEqual([list, tuple, dict, set])
     string, imports = MigrationWriter.serialize([list, tuple, dict, set])
     self.assertEqual(string, "[list, tuple, dict, set]")
     self.assertEqual(imports, set())
     # Functions
     with six.assertRaisesRegex(self, ValueError, 'Cannot serialize function: lambda'):
         self.assertSerializedEqual(lambda x: 42)
     self.assertSerializedEqual(models.SET_NULL)
     string, imports = MigrationWriter.serialize(models.SET(42))
     self.assertEqual(string, 'models.SET(42)')
     self.serialize_round_trip(models.SET(42))
     # Datetime stuff
     self.assertSerializedEqual(datetime.datetime.utcnow())
     self.assertSerializedEqual(datetime.datetime.utcnow)
     self.assertSerializedEqual(datetime.datetime.today())
     self.assertSerializedEqual(datetime.datetime.today)
     self.assertSerializedEqual(datetime.date.today())
     self.assertSerializedEqual(datetime.date.today)
     self.assertSerializedEqual(datetime.datetime.now().time())
     self.assertSerializedEqual(datetime.datetime(2014, 1, 1, 1, 1, tzinfo=get_default_timezone()))
     self.assertSerializedEqual(datetime.datetime(2014, 1, 1, 1, 1, tzinfo=FixedOffset(180)))
     safe_date = datetime_safe.date(2014, 3, 31)
     string, imports = MigrationWriter.serialize(safe_date)
     self.assertEqual(string, repr(datetime.date(2014, 3, 31)))
     self.assertEqual(imports, {'import datetime'})
     safe_time = datetime_safe.time(10, 25)
     string, imports = MigrationWriter.serialize(safe_time)
     self.assertEqual(string, repr(datetime.time(10, 25)))
     self.assertEqual(imports, {'import datetime'})
     safe_datetime = datetime_safe.datetime(2014, 3, 31, 16, 4, 31)
     string, imports = MigrationWriter.serialize(safe_datetime)
     self.assertEqual(string, repr(datetime.datetime(2014, 3, 31, 16, 4, 31)))
     self.assertEqual(imports, {'import datetime'})
     timezone_aware_datetime = datetime.datetime(2012, 1, 1, 1, 1, tzinfo=utc)
     string, imports = MigrationWriter.serialize(timezone_aware_datetime)
     self.assertEqual(string, "datetime.datetime(2012, 1, 1, 1, 1, tzinfo=utc)")
     self.assertEqual(imports, {'import datetime', 'from django.utils.timezone import utc'})
     # Django fields
     self.assertSerializedFieldEqual(models.CharField(max_length=255))
     self.assertSerializedFieldEqual(models.TextField(null=True, blank=True))
     # Setting references
     self.assertSerializedEqual(SettingsReference(settings.AUTH_USER_MODEL, "AUTH_USER_MODEL"))
     self.assertSerializedResultEqual(
         SettingsReference("someapp.model", "AUTH_USER_MODEL"),
         (
             "settings.AUTH_USER_MODEL",
             {"from django.conf import settings"},
         )
     )
     self.assertSerializedResultEqual(
         ((x, x * x) for x in range(3)),
         (
             "((0, 0), (1, 1), (2, 4))",
             set(),
         )
     )
Ejemplo n.º 20
0
 def test_time_gte_all_for_first(self):
     times = [time(0, 0), time(5, 5), time(7, 7)]
     self.assertEquals(times, times_gte(times, time.min))
Ejemplo n.º 21
0
 def test_time_gte_some(self):
     times = [time(0, 0), time(5, 5), time(7, 7)]
     self.assertEquals(times[1:], times_gte(times, times[1]))
Ejemplo n.º 22
0
 def test_time_gte_none_for_max(self):
     times = [time(0, 0), time(5, 5), time(7, 7)]
     self.assertEquals([], times_gte(times, time.max))
Ejemplo n.º 23
0
    def sort_schichten_in_templates(self):
        splitted_templates = []
        templates = get_schicht_templates(asn=self.request.user.assistenznehmer, order_by='beginn')
        # Todo Sub-Templates und verschobene Templates
        for template in templates:
            if template.beginn < template.ende:

                splitted_templates.append(
                    {
                        'beginn': template.beginn,
                        'ende': template.ende
                    }
                )
            else:
                splitted_templates.append(
                    {
                        'beginn': template.beginn,
                        'ende': time(0)
                    }
                )
                splitted_templates.append(
                    {
                        'beginn': time(0),
                        'ende': template.ende
                    }
                )
        splitted_templates = sorted(splitted_templates, key=lambda j: j['beginn'])

        start = self.act_date

        # schichtsammlung durch ergänzung von leeren Tagen zu Kalender konvertieren
        end = shift_month(self.act_date, step=1)
        monatsletzter = (end - timedelta(days=1)).day

        schichten = get_sliced_schichten_by_asn(
            start=self.act_date,
            end=end,
            asn=self.request.user.assistenznehmer
        )

        table_array = {}
        for i in range(1, monatsletzter + 1):
            datakey = datetime(year=self.act_date.year, month=self.act_date.month, day=i)
            template_counter = 0
            table_array[datakey] = {}
            for template in splitted_templates:
                temp_beginn = timezone.make_aware(datetime.combine(datakey, template['beginn']))
                if template['ende'] == time(0):
                    temp_ende = timezone.make_aware(
                        datetime.combine(
                            datakey + timedelta(days=1),
                            template['ende']
                        )
                    )
                else:
                    temp_ende = timezone.make_aware(datetime.combine(datakey, template['ende']))
                table_array[datakey][template_counter] = []
                schicht_counter = 0
                for schicht in schichten:
                    # print(temp_beginn)
                    # print(schicht['beginn'])
                    # print(temp_ende)
                    # print(schicht['ende'])
                    # print('--------------------')
                    if schicht['beginn'] == temp_beginn and schicht['ende'] == temp_ende:
                        # Wenn sich mehrere Assistenten um die gleiche Schicht "bewerben",
                        # können mehrere Schichten im selben Template stehen

                        table_array[datakey][template_counter].append(schicht)
                        schichten.remove(schicht)
                        schicht_counter += 1

                if schicht_counter == 0:
                    table_array[datakey][template_counter] = []
                template_counter += 1
        print(schichten)
        print('---hurz-----')

        return splitted_templates, table_array