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()
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()
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())
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
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
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
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