Ejemplo n.º 1
0
def clean_unique_ips(age=7):
    "remove all unique IP addresses older than 'age' days"
    from django.utils.timezone import now
    from datetime import timedelta
    cutoff = now.date() - timedelta(days=age)
    query = Miete.objects.values('ipaddress','added').annotate(count=models.Count('ipaddress')).order_by()
    query.filter(count==1, added_lt=cutoff).delete()
Ejemplo n.º 2
0
def clean_unique_ips(age=7):
    "remove all unique IP addresses older than 'age' days"
    from django.utils.timezone import now
    from datetime import timedelta
    cutoff = now.date() - timedelta(days=age)
    query = Miete.objects.values(
        'ipaddress',
        'added').annotate(count=models.Count('ipaddress')).order_by()
    query.filter(count == 1, added_lt=cutoff).delete()
Ejemplo n.º 3
0
 def test_sitemap_uses_publication_date_when_later_than_modification(self):
     now = timezone.now()
     now -= datetime.timedelta(microseconds=now.microsecond)
     one_day_ago = now - datetime.timedelta(days=1)
     page = create_page("page", "nav_playground.html", "en", published=True, publication_date=now)
     title = page.get_title_obj('en')
     page.creation_date = one_day_ago
     page.changed_date = one_day_ago
     sitemap = CMSSitemap()
     actual_last_modification_time = sitemap.lastmod(title)
     self.assertEqual(actual_last_modification_time.date(), now.date())
Ejemplo n.º 4
0
    def get_context_data(self, **kwargs):
        data = super(MotdView, self).get_context_data(**kwargs)

        events = Event.objects.filter(when__gte=now.date())
        if events:
            data['event'] = events[0]
            data['players'] = Participant.objects.filter(event=data['event'],
                                                         status__in=(
                                                         'com', 'yes'))

        return data
Ejemplo n.º 5
0
    def generate_ticker(self):
        ticker = []

        now = datetime.datetime.now()
        this_monday = now.date() - datetime.timedelta(days=now.weekday())
        next_monday = this_monday + datetime.timedelta(days=7)
        last_monday = this_monday - datetime.timedelta(days=7)
        two_mondays_ago = last_monday - datetime.timedelta(days=7)
        last_september = datetime.date(now.year if now.month > 9 else now.year - 1, 9, 20)

        atmos_counter_start_date = datetime.datetime(2014, 9, 1)
        atmos_start_balance = 2059.33

        take_calc = lambda qs: qs.aggregate(take=Sum('ticket_type__sale_price'))['take'] or Decimal('0.00')
        tix = models.Ticket.objects.filter(status='live')
        take_last_week = take_calc(tix.filter(ticket_type__event__start_time__gte=last_monday, ticket_type__event__start_time__lt=this_monday)) or Decimal('0.00')
        take_this_week = take_calc(tix.filter(ticket_type__event__start_time__gte=this_monday, ticket_type__event__start_time__lt=next_monday)) or Decimal('0.00')
        tickets_sold_last_week = tix.filter(ticket_type__event__start_time__gte=last_monday, ticket_type__event__start_time__lt=this_monday).aggregate(n=Count('id'))['n'] or 0
        tickets_sold_this_week = tix.filter(ticket_type__event__start_time__gte=this_monday, ticket_type__event__start_time__lt=next_monday).aggregate(n=Count('id'))['n'] or 0
        tickets_sold_since_atmos_counter = tix.filter(ticket_type__event__start_time__gte=atmos_counter_start_date, ticket_type__event__start_time__lt=next_monday).aggregate(n=Count('id'))['n'] or 0

        lolz_feeling = random.choice([
            "So Nearly Done...",
            "So Close",
            "Nearly there",
            "Not far now",
            "Not quite",
            "#Phase2",
            "Just a little more",
            "Failing to acquire raked seating since 1993."
        ])

        ticker.append('​Current members: {}'.format(models.EntitlementDetail.objects.filter(entitlement__name='2014-15 Membership').count()))
        ticker.append('​Outstanding free tickets: {}'.format(models.EntitlementDetail.objects.filter(entitlement__name='2014-15 Members Free Ticket', remaining_uses__gte=1).count()))
        ticker.append('​Take last week: £{}'.format(take_last_week))
        ticker.append('​Take so far this week: £{}'.format(take_this_week))
        ticker.append('​Tickets to sell until we can afford Atmos: {}'.format(int((66919.56-atmos_start_balance)/2.18)-tickets_sold_since_atmos_counter))
        ticker.append('​Tickets sold last week: {}'.format(tickets_sold_last_week))
        if random.randint(1, 10) == 2:
            ticker.append('#LivingTheDream')
        ticker.append('​Tickets sold this week: {}'.format(tickets_sold_this_week))
        ticker.append('​UCH Redevelopment Status Report: '+lolz_feeling)

        return ticker
Ejemplo n.º 6
0
    def generate_ticker(self):
        ticker = []

        now = datetime.datetime.now()
        this_monday = now.date() - datetime.timedelta(days=now.weekday())
        next_monday = this_monday + datetime.timedelta(days=7)
        last_monday = this_monday - datetime.timedelta(days=7)
        two_mondays_ago = last_monday - datetime.timedelta(days=7)

        last_september = datetime.date(now.year if now.month > 9 else now.year - 1, 9, 20)

        take_calc = lambda qs: qs.aggregate(take=Sum('ticket_type__sale_price'))['take'] or Decimal('0.00')
        tix = models.Ticket.objects.filter(status='live')
        take_last_week = take_calc(tix.filter(ticket_type__event__start_time__gte=last_monday, ticket_type__event__start_time__lt=this_monday)) or Decimal('0.00')
        take_this_week = take_calc(tix.filter(ticket_type__event__start_time__gte=this_monday, ticket_type__event__start_time__lt=next_monday)) or Decimal('0.00')
        tickets_sold_last_week = tix.filter(ticket_type__event__start_time__gte=last_monday, ticket_type__event__start_time__lt=this_monday).aggregate(n=Count('id'))['n'] or 0
        tickets_sold_this_week = tix.filter(ticket_type__event__start_time__gte=this_monday, ticket_type__event__start_time__lt=next_monday).aggregate(n=Count('id'))['n'] or 0

        lolz_feeling = random.choice([
            "Bad",
            "Shit",
            "Epic Fail",
            "Super Special Fail",
            "Petrol Bombing Time",
            "#IHateMyLife",
            "F**K IMPERIAL",
            "ERMAHGERD THIS IS THE WORST EVER"
        ])


        ticker.append('​Current members: {}'.format(models.EntitlementDetail.objects.filter(entitlement__name='2014-15 Membership').count()))
        ticker.append('​Outstanding free tickets: {}'.format(models.EntitlementDetail.objects.filter(entitlement__name='2014-15 Members Free Ticket', remaining_uses__gte=1).count()))
        ticker.append('​Take last week: £{}'.format(take_last_week))
        ticker.append('​Take so far this week: £{}'.format(take_this_week))
        ticker.append('​Tickets to sell until we can afford Atmos: '+str(random.randint(100000,200000)))
        ticker.append('​Tickets sold last week: {}'.format(tickets_sold_last_week))
        if random.randint(1, 10) == 2:
            ticker.append('#LivingTheDream')
        ticker.append('​Tickets sold this week: {}'.format(tickets_sold_this_week))
        ticker.append('​UCH Redevelopment Status Report: '+lolz_feeling)

        return ticker
Ejemplo n.º 7
0
 def get_form_desc():
     form = {}
     now = datetime.now()
     labels = {
         'date': 'Дата',
         'loading_time': 'Время с',
         'unloading_time': 'Время по',
         'address': 'Адрес',
         'filial': 'Филиал',
         'load_markup': 'Маркировка',
         'load_weight': 'Вес',
         'load_volume': 'Объем',
         'driver': 'Водитель',
         'customer': 'Клиент',
         'loader_number': 'Число грузчиков',
         'metro': 'Метро',
         'status': 'Статус',
         'turnouts': 'Грузчики',
         'remark': 'Примечание',
         'driver_come_time': 'Время прихода водителя',
         'driver_postfact_time': 'Фактическое время прихода водителя'
     }
     types = {
         'date': 'text',
         'loading_time': 'text',
         'unloading_time': 'text',
         'address': 'text',
         'filial': 'text',
         'load_markup': 'text',
         'load_weight': 'float',
         'load_volume': 'float',
         'driver': 'select',
         'loader_number': 'number',
         'customer': 'select',
         'metro': 'select',
         'status': 'choice',
         'turnouts': 'select-multiple',
         'remark': 'textarea',
         'driver_come_time': 'text',
         'driver_postfact_time': 'text'
     }
     defaults = {
         'date': get_date_str(now.date()),
         'loading_time': get_time_str(now.time()),
         'unloading_time': get_time_str(now.time()),
         'address': 'г.М',
         'filial': 'Главный',
         'loader_number': 1,
         'status': ORDER_STATUS[0][0]
     }
     required = {
         'date': True,
         'loading_time': True,
         'unloading_time': True,
         'address': True,
         'filial': True,
         'load_markup': True,
         'load_weight': True,
         'load_volume': True,
         'driver': True,
         'loader_number': True,
         'customer': True,
         'metro': False,
         'status': False,
         'turnouts': False,
         'remark': False,
         'driver_come_time': False,
         'driver_postfact_time': False
     }
     urls = {
         'driver': reverse('delivery:driver-autocomplete'),
         'customer': reverse('the_redhuman_is:customer-autocomplete'),
         'turnouts': reverse('delivery:worker-autocomplete'),
         'metro': reverse("the_redhuman_is:metro-station-autocomplete")
     }
     choices = {'status': {choice[0]: choice[1] for choice in ORDER_STATUS}}
     form['labels'] = labels
     form['types'] = types
     form['urls'] = urls
     form['defaults'] = defaults
     form['choices'] = choices
     form['required'] = required
     return form