예제 #1
0
def movement_accountability2(request, i=0):
    q = request.GET.get('searchInput')
    if q:
        date_query = datetime.strptime(q, '%d/%m/%Y').date()
        moviments = Movimento.objects.filter(created__contains=date_query)
        saida = Movimento.objects.\
            filter(created__contains=date_query, transaction_kind__icontains='out').aggregate(Sum('value_moved'))
        compra = Movimento.objects.\
            filter(created__contains=date_query, transaction_kind__icontains='in').aggregate(Sum('value_moved'))
        moviments.total_venda = saida['value_moved__sum']
        moviments.total_compra = compra['value_moved__sum']

        print(saida['value_moved__sum'])
    else:
        moviments = Movimento.objects.filter(
            created__contains=timezone_today())
        saida = Movimento.objects.\
            filter(created__contains=timezone_today(), transaction_kind__icontains='out').aggregate(Sum('value_moved'))
        compra = Movimento.objects.\
            filter(created__contains=timezone_today(), transaction_kind__icontains='in').aggregate(Sum('value_moved'))
        from django.db.models import Count

        moviments.total_venda = saida['value_moved__sum']
        moviments.total_compra = compra['value_moved__sum']

    context = {'moviments': moviments}
    return render(request, 'moviment_accountability.html', context)
예제 #2
0
    def get_dated_queryset(self, *args, **lookup):
        """
        Get a queryset properly filtered according to `allow_future` and any
        extra lookup kwargs.
        """
        qs = self.get_queryset().filter(*args, **lookup)
        end_field = self.get_date_field_end()
        allow_future = self.get_allow_future()
        allow_empty = self.get_allow_empty()
        paginate_by = self.get_paginate_by(qs)

        if not allow_future:
            now = timezone.now(
            ) if self.uses_datetime_field else timezone_today()
            qs = qs.filter(**{'%s__lte' % end_field: now})

        if not allow_empty:
            # When pagination is enabled, it's better to do a cheap query
            # than to load the unpaginated queryset in memory.
            is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()
            if is_empty:
                raise Http404("No %(verbose_name_plural)s available".format(
                    verbose_name_plural=qs.model._meta.verbose_name_plural, ))

        return qs
예제 #3
0
파일: views.py 프로젝트: JuanBer90/ProjectX
def save_historial(tipo, id_usuario, id_item):
    h = HistorialItem()
    h.fecha_modificacion = timezone_today()
    h.tipo_modificacion = tipo
    h.user_id = id_usuario
    h.item_id = id_item
    h.save()
예제 #4
0
파일: views.py 프로젝트: JuanBer90/ProjectX
def fase(request, id_fase,id_proyecto):
    fase=Fase.objects.get(pk=id_fase)
    if fase.nombre == None:
        modo='Crear'
    else:
        modo='Editar'

    msg=''
    if request.method=='POST':
         nombre=request.POST.get('nombre','')
         aux=Fase.objects.filter(nombre=nombre).count()
         if aux >1:
            msg='Ya existe una Fase con el mismo nombre'
            messages.warning(request,msg)
            
            return render_to_response('HtmlFases/editfase.html',{'fase':fase,'modo':modo,'msg':msg,'id_proyecto':id_proyecto},context_instance=RequestContext(request))
         descripcion=request.POST.get('descripcion','')
         fecha=timezone_today()
         fase.nombre=nombre
         fase.descripcion=descripcion
         fase.estado='NOI'
         fase.fecha_creacion=fecha
         fase.save()
         messages.success(request,"Fase Modificada con exito!")
         
         return HttpResponseRedirect('/proyecto/fases/'+str(id_proyecto))

    estados=ESTADOS_FASE

    return render_to_response('HtmlFases/editfase.html',{'fase':fase,'modo':modo,'msg':msg,'estados':['asdf','adsf'],'id_proyecto':id_proyecto},context_instance=RequestContext(request))
예제 #5
0
    def save_model(self, request, obj, form, change):
        """
         En esta función se verifica si el estado cambió a INICIADO y le 
        asigna una fecha de creación, ademas se le asigna como miembro del equipo
        al usuario que creo el proyecto, solo si este no es superusuario
        """

        if obj.fecha_creacion == None and obj.estado == "INI":
            obj.fecha_creacion = timezone_today()
        obj.save()

        if not change and not request.user.is_superuser:
            obj.equipo.add(request.user)
예제 #6
0
def total_venda(request):
    q = request.GET.get('searchInput')
    if q:
        date_query = datetime.strptime(q, '%d/%m/%Y').date()
        return Movimento.objects.filter(
            created__contains=date_query,
            transaction_kind__icontains='out').aggregate(
                total=Sum('value_moved'))
    else:
        # date_query = now().year, now().month, now().day
        return Movimento.objects.filter(
            created__lt=timezone_today(),
            transaction_kind__icontains='out').aggregate(Sum('value_moved'))
예제 #7
0
파일: product.py 프로젝트: cash2one/source
 def render(self, context):
     today = timezone_today()
     context.update({
         'today':
         today,
         'months':
         reduce(next_month, six.moves.range(self.count), [today]),
         'week_days':
         [date(2001, 1, 1 + i)
          for i in six.moves.range(7)],  # January 1, 2001, was a Monday.
         'monthcalendar':
         calendar.monthcalendar(today.year, today.month),
     })
     return self.nodelist.render(context)
예제 #8
0
def movement_accountability(request, i=0):
    q = request.GET.get('searchInput')
    if q:
        date_query = datetime.strptime(q, '%d/%m/%Y').date()

        # moviments = Movimento.objects.filter(created__contains=date_query)
        moviments = Movimento.objects.select_related().\
            filter(created__contains=date_query).\
            values('user__username', 'transaction_kind').annotate(Sum('value_moved'))

        saida = Movimento.objects.filter(
            created__contains=date_query,
            transaction_kind__icontains='out').aggregate(Sum('value_moved'))
        compra = Movimento.objects.filter(
            created__contains=date_query,
            transaction_kind__icontains='in').aggregate(Sum('value_moved'))

        moviments.total_venda = saida['value_moved__sum']
        moviments.total_compra = compra['value_moved__sum']

    else:
        moviments = Movimento.objects.select_related().\
            filter(created__contains=timezone_today()).\
            values('user__username', 'transaction_kind').annotate(Sum('value_moved'))

        saida = Movimento.objects.filter(
            created__contains=timezone_today(),
            transaction_kind__icontains='out').aggregate(Sum('value_moved'))
        compra = Movimento.objects.filter(
            created__contains=timezone_today(),
            transaction_kind__icontains='in').aggregate(Sum('value_moved'))

        moviments.total_venda = saida['value_moved__sum']
        moviments.total_compra = compra['value_moved__sum']

    context = {'moviments': moviments}
    return render(request, 'moviment_accountability.html', context)
 def job(self):
     self.stdout.write("Controlando sprints..")
     sprints=Sprint.objects.all().order_by('proyecto','fecha_inicio')
     for s in sprints:
       if s.fecha_fin <= timezone_today() and not s.finalizado:
           self.stdout.write("Sprint "+s.nombreSprint+" finalizado...")
           userstories=UserStory.objects.filter(sprint=s)
           sprint2=Sprint.objects.filter(proyecto=s.proyecto,fecha_inicio__gte=s.fecha_fin).order_by('fecha_inicio')
           if sprint2.exists():
               self.stdout.write("pasando User Stories al siguiente Sprint...")
               for us in userstories:
                   self.stdout.write(us.nombreUS+"...")
                   us.sprint=sprint2[0]
                   us.save()
           
           s.finalizado=True
           s.save()
예제 #10
0
    def save(self, **kwargs):
        # Preenche os atributos sem preenchimento do usuário
        if not self.status:
            self.status = self.get_status_inicial()

        # Precisa preencher pois o campo é NOT_NULL, mas será sobrescrito depois
        self.percentual_cashback = self.get_percentual_cashback(self.valor)

        # Salva a compra no banco de dados
        super(Compra, self).save(**kwargs)

        # Recalcula o total de vendas do último mês
        inicio = timezone_today() - timedelta(days=30)
        vendas_do_mes = self.vendedor.compras.filter(data__date__gte=inicio)

        sum = vendas_do_mes.aggregate(vendas_do_mes=Sum("valor"))
        if sum:
            novo_percentual = self.get_percentual_cashback(
                sum["vendas_do_mes"])
            # Atualiza o mesmo queryset para o novo percentual
            vendas_do_mes.update(percentual_cashback=novo_percentual)
            self.percentual_cashback = novo_percentual
예제 #11
0
파일: api.py 프로젝트: diegorocha/boticario
 def validate_data(self, value):
     delta = timezone_today() - value.date()
     if delta.days > 30:
         raise ValidationError("Não é possível inserir uma compra de mais de 30 dias atrás")
     return value
예제 #12
0
 def save(self, **kwargs):
     if self.id is None:
         self.date = timezone_today()
     super().save(**kwargs)
 def test_2(self):
     user = UserFactory(date_joined=timezone_today() -
                        datetime.timedelta(1))
     self.assertEqual(list(get_users_created_yesterday()), [user])
예제 #14
0
def index(request):
    today = timezone_today()
    return redirect("month", today.year, today.month)
예제 #15
0
def get_scenarios_updated_yesterday():
    return Scenario.objects.filter(
        last_modified__date=(timezone_today() - datetime.timedelta(days=1)))
예제 #16
0
파일: views.py 프로젝트: JuanBer90/dissoi2
def nuevo(request,id_comunidad=''): 
    usuario=request.user
    if usuario.has_perm(USUARIO_LIMITADO) and id_comunidad=='':
        id_comunidad = get_comunidad(usuario)
        if id_comunidad == 0:
            return HttpResponseRedirect('/admin')
    else:
        if id_comunidad == '':
            return HttpResponseRedirect('/admin')
    bancos = CuentaBancaria.objects.filter(comunidad_id=id_comunidad)
    
    if request.method == 'POST':
        addOther = request.POST.get('_addanother', '').encode('utf8')
        save=request.POST.get('_save','')
        total_rows=int(request.POST.get('cantidad_rows',0))
        print 'asdf: '+str(total_rows)
        fecha=request.POST.get('fecha','')
        fecha=datetime.datetime.strptime(fecha, "%d/%m/%Y")
        asiento = AsientoContable()
        asiento.fecha = fecha
        asiento.comunidad_id = id_comunidad
        asiento.save()

        
        fields=""
        for i in range(0,total_rows):
            id_cuenta = request.POST.get('asientocontabledetalle_set-' + str(i) + '-cuenta', '')
            debe = Decimal(request.POST.get('asientocontabledetalle_set-' + str(i) + '-debe', ''))
            haber = Decimal(request.POST.get('asientocontabledetalle_set-' + str(i) + '-haber', ''))
            obs = request.POST.get('asientocontabledetalle_set-' + str(i) + '-observacion', '')
            if id_cuenta != '':
                id_cuenta=int(id_cuenta)
                cuenta=Cuenta.objects.get(pk=id_cuenta)
                asiento_detalle=AsientoContableDetalle()
                asiento_detalle.cuenta_id=id_cuenta
                asiento_detalle.debe=debe
                asiento_detalle.haber=haber
                asiento_detalle.asiento_contable=asiento
                asiento_detalle.observacion=obs
                if cuenta.codigo == '1.2.5.2':
                    banco_id = request.POST.get('asientocontabledetalle_set-' + str(i) + '-banco', 0)
                    asiento_detalle.cuenta_bancaria_id=banco_id
                asiento_detalle.save()
                fields+='id:'+str(id_cuenta)+'-'+str(debe)+'-'+str(haber)+"\n"
        LogEntry.objects.log_action(
            user_id=request.user.id,
            content_type_id=ContentType.objects.get_for_model(AsientoContable).pk,
            object_id=asiento.id,
            object_repr=unicode(fields),
            action_flag=ADDITION)
    cuentas=Cuenta.objects.all()
    filas=[]
    for i in range(0,50):
         filas.append(i)
    if not request.user.has_perm(USUARIO_LIMITADO):
        return render_to_response('balance/admin_change_form.html',
                                  {'add': True, 'filas':filas,'bancos': bancos, 'hoy': str(timezone_today().strftime('%d/%m/%Y'))},
                                  context_instance=RequestContext(request))
    else:
        return render_to_response('balance/nuevo_change_form.html', {'add':True,'filas':filas,'bancos':bancos,'hoy':str(timezone_today().strftime('%d/%m/%Y'))},
                              context_instance=RequestContext(request))
예제 #17
0
 def for_public_display(self):
     objs = self.get_queryset().filter(
         invoice__expiration_date__gte=timezone_today(),
     ).annotate(donated_amount=models.Sum('invoice__amount'))
     return objs.order_by('-donated_amount', 'display_name')
예제 #18
0
파일: views.py 프로젝트: JuanBer90/dissoi2
def cerrar_ejercicio(request):
    if Ejercicio.objects.filter(actual=True).exists():
        ejercicio=Ejercicio.objects.get(actual=True)
    else:
        ejercicio=Ejercicio()
    if request.method == 'POST':
        ejercicio.actual=False
        ejercicio.save()
        crear_ejercicio=request.POST.get('crear_ejercicio','No')
        print crear_ejercicio
        if crear_ejercicio == 'Si':
            nuevo_ejercicio = Ejercicio()
            nuevo_ejercicio.actual = True
            nuevo_ejercicio.anho = ejercicio.anho + 1
            nuevo_ejercicio.save()
            cuentas = Cuenta.objects.filter(numchild=0).filter(Q(tipo='IN') | Q(tipo='EG')).order_by('codigo_ordenado')
            comunidades = Comunidad.objects.all()
            for comunidad in comunidades:
                for cuenta in cuentas:
                    print cuenta
                    for i in range(1, 13):
                        presupuesto = Presupuesto()
                        presupuesto.ejercicio = nuevo_ejercicio
                        presupuesto.cuenta = cuenta
                        presupuesto.mes = i
                        presupuesto.monto = 0
                        presupuesto.comunidad = comunidad
                        presupuesto.save()
            crear_asiento=request.POST.get('crear_asiento','No')
            if crear_asiento == 'Si':
                query_comunidad="select distinct co.id  from asientos_contables_asientocontabledetalle ad "\
                " join asientos_contables_asientocontable a on a.id=ad.asiento_contable_id "\
                " join comunidades_comunidad co on co.id=a.comunidad_id "\
                " join cuentas_cuenta c on c.id=ad.cuenta_id "\
                " where extract(year from a.fecha)="+str(ejercicio.anho)+" and ad.debe-ad.haber != 0"
                comunidades=execute_all_query(query_comunidad)

                query="select co.id, c.id,sum(ad.debe)-sum(ad.haber) as saldo "\
                " from asientos_contables_asientocontabledetalle ad "\
                " join asientos_contables_asientocontable a on a.id=ad.asiento_contable_id "\
                " join comunidades_comunidad co on co.id=a.comunidad_id "\
                " join cuentas_cuenta c on c.id=ad.cuenta_id "\
                " where extract(year from a.fecha)="+str(ejercicio.anho)+" and ad.debe-ad.haber != 0"\
                " group by co.id,c.id, c.cuenta order by co.id"
                asientos_detalles=execute_all_query(query)

                for com in comunidades:
                    asiento_apertura=AsientoContable()
                    asiento_apertura.fecha=timezone_today()
                    asiento_apertura.comunidad_id=com[0]
                    asiento_apertura.observacion="Asiento de apertura correspodiente al ejercicio actual"
                    asiento_apertura.save()
                    for ad in asientos_detalles:
                        if ad[2] == com[0]:
                            asiento_detalle_apertura=AsientoContableDetalle()
                            asiento_detalle_apertura.cuenta_id=ad[1]
                            if ad[2]>0:
                                asiento_detalle_apertura.debe=ad[2]
                            else:
                                asiento_detalle_apertura.haber = ad[2]*-1
                            asiento_detalle_apertura.asiento_contable=asiento_apertura
                            asiento_detalle_apertura.observacion="Asiento de apertura"
                            asiento_detalle_apertura.save()
        return HttpResponseRedirect('/admin')
    return render_to_response('balance/cerrar_ejercicio.html', {'ejercicio':ejercicio},
                              context_instance=RequestContext(request))
예제 #19
0
 def get_context_data(self):
     context = super().get_context_data()
     context['former_members'] = IndividualMember.objects.filter(
         member_until__lte=timezone_today(), )
     return context
예제 #20
0
 def get_context_data(self):
     context = super().get_context_data()
     context['former_members'] = IndividualMember.objects.filter(
         member_until__lte=timezone_today(),
     )
     return context
예제 #21
0
파일: views.py 프로젝트: JuanBer90/dissoi2
def listar(request):
    
    q=request.GET.get('q','')
    fecha__gte=request.GET.get('fecha__gte','1900-01-01')
    fecha__lt=request.GET.get('fecha__lt','2050-01-01')
    usuario=request.user
        
    if not usuario.has_perm(USUARIO_LIMITADO):
           objeto_total=AsientoContableDetalle.objects.filter(asiento_contable__fecha__contains=q,
                                                          asiento_contable__fecha__gt=fecha__gte,
                                                       asiento_contable__fecha__lt=fecha__lt).count()
    else:
        id_comunidad=get_comunidad(usuario)
        objeto_total=AsientoContableDetalle.objects.filter(asiento_contable__fecha__contains=q,
                                                          asiento_contable__fecha__gt=fecha__gte,
                                                       asiento_contable__fecha__lt=fecha__lt,asiento_contable__comunidad_id=id_comunidad).count()
    page=request.GET.get('page',1)
    
    lines=[]
    for i in range(objeto_total):
        lines.append(u'Line %s' % (i + 1))
    nro_lineas=100
    paginator = Paginator(lines, nro_lineas)
    try:
        page=int(page)
    except:
        page=1
    if int(page)*nro_lineas>objeto_total or int(page)>0:
        try:
            items = paginator.page(page)
            fin=int(page)*nro_lineas
            ini =fin-nro_lineas
        except PageNotAnInteger or EmptyPage:
            fin=nro_lineas
            ini=0
            items = paginator.page(1)
    else:
        fin=nro_lineas
        ini=0
        items = paginator.page(1)
        
    if not usuario.has_perm(USUARIO_LIMITADO):
           asientos=AsientoContableDetalle.objects.filter(asiento_contable__fecha__contains=q,
                                                          asiento_contable__fecha__gt=fecha__gte,
                                                       asiento_contable__fecha__lt=fecha__lt)[ini:fin]
    else:
        id_comunidad=get_comunidad(usuario)
        if id_comunidad == 0:
            pass
        asientos=AsientoContableDetalle.objects.filter(asiento_contable__fecha__contains=q,
                                                          asiento_contable__fecha__gt=fecha__gte,
                                                       asiento_contable__fecha__lt=fecha__lt,asiento_contable__comunidad_id=id_comunidad)

    hoy = datetime.datetime.today()
    ayer=hoy+datetime.timedelta(days=-1)
    ultimos_7dias = hoy + datetime.timedelta(days=-7)
    manana = hoy + datetime.timedelta(days=1)
    today=timezone_today()
    
    cant_dias=calendar.monthrange(today.year,1)[1]
    ultimos_30dias_max=  str(today.year)+'-'+str(today.month)+'-'+str(today.day)
    ultimos_30dias_min = str(today.year) + '-' + str(today.month) + '-01'
    este_anho_max=str(today.year+1) + '-01-01'
    este_anho_min=str(today.year) + '-01-01'
    
    return render_to_response('asientos/nuevo_asientos_list.html',
    {'asientos':asientos,'hoy':str(hoy.date()),'ultimos_30dias_max':ultimos_30dias_max,'page' : page,
     'ayer':str(ayer.date()),'ultimos_30dias_min':ultimos_30dias_min,'este_anho_max':este_anho_max,'este_anho_min':este_anho_min
        ,'ultimo_7dias':str(ultimos_7dias.date()),'manana':str(manana.date())},
    context_instance=RequestContext(request,{ 'lines': items }))
예제 #22
0
    def save_model(self, request, obj, form, change):
        """ En esta función se guardan los cambios correspondientes a usuarios,
        ya sea Agregar usuarios a equipo o Eliminar Usuario del equipo"""
        obj.backlog = False
        if change:
            original = UserStory.objects.get(pk=obj.id)
            """ Se verificia si la cantidad de horas trabajadas"""
            if original.tiempo_trabajado != obj.tiempo_trabajado and obj.sprint:
                timeline = TimeLine()
                timeline.userstory = original
                timeline.fecha = timezone_today()
                timeline.horas = obj.tiempo_trabajado - original.tiempo_trabajado
                timeline.horas_restantes_sprint = obj.sprint.horas_faltantes() - obj.tiempo_trabajado
                timeline.horas_restantes_proyecto = obj.proyecto.horas_faltantes() - obj.tiempo_trabajado
                timeline.save()
            actual = obj.get_prioridad_display()
            anterior = UserStory.objects.get(pk=obj.id).get_prioridad_display()
            print actual, anterior
            if actual != anterior:
                aux = "Cambio de prioridad al User Story"
                mensaje = (
                    "Le informamos que el User Story al que pertenece ha cambiado de prioridad  <b>" + anterior + "</b>"
                )
                mensaje += " a prioridad <b>" + actual + "</b>"
                enviar_notificacion(
                    asunto=aux,
                    titulo1=aux,
                    titulo2=aux,
                    mensaje=mensaje,
                    username=obj.usuario.username,
                    correo=obj.usuario.email,
                )

        cambio_user = False
        if change and obj.usuario != None:
            if original.usuario_id != obj.usuario_id:
                cambio_user = True

        elif not change and obj.usuario != None:
            cambio_user = True

        if cambio_user:
            enviar_notificacion(
                asunto="User Story",
                titulo1="Asignacion de User Story",
                titulo2="Asignacion de User Story",
                mensaje=" Le informamos que se le ha sido asignado el  User Story <b>" + obj.nombreUS + " </b>",
                username=obj.usuario.username,
                correo=obj.usuario.email,
            )

        """ En esta parte del codigo se verifica si hubo un cambio en la asignacion de flujo para luego enviar
        una notificacion por correo al usuario relacionado al User Story"""
        if obj.flujo != None:
            if not change or (change and obj.flujo_id != original.flujo_id):
                enviar_notificacion(
                    asunto="User Story: Asignacion de Flujo",
                    titulo1="Asignacion de Flujo",
                    titulo2="Asignacion de Flujo ",
                    mensaje=" Le informamos que se le ha sido asignado el Flujo <b>"
                    + obj.flujo.nombre
                    + "</b>  al User Story <b>"
                    + obj.nombreUS
                    + "</b>.",
                    username="******",
                    correo=obj.usuario.email,
                )
                if obj.actividad_flujo != None:
                    siguiente = Actividad.objects.filter(flujo=obj.actividad_flujo.flujo).order_by("orden")
                    if siguiente.exists():
                        obj.actividad_flujo = siguiente[0]
                        obj.estado_actividad = "TO"

        if obj.estado_actividad == "DE" and obj.actividad_flujo != None:
            siguiente = Actividad.objects.filter(flujo=obj.actividad_flujo.flujo, orden=obj.actividad_flujo.orden + 1)
            if siguiente.exists():
                obj.actividad_flujo = siguiente[0]
                obj.estado_actividad = "TO"
            else:
                obj.estado_actividad = "FD"

        """esto sirve para controlar el estado del sprint"""
        if obj.sprint is not None:
            if obj.flujo is None:
                obj.estado_sprint = "B"
            if obj.flujo is not None:
                obj.estado_sprint = "F"

        """esto controla que cuando se asigna a un flujo comienze en la actividad 1"""
        if not UserStory.objects.filter(pk=obj.id).exists():
            if obj.flujo != None:
                obj.actividad_flujo = Actividad.objects.get(flujo=obj.flujo, orden=1)
        else:
            flujo_original = UserStory.objects.get(pk=obj.id).flujo
            if flujo_original != obj.flujo:
                obj.actividad_flujo = Actividad.objects.get(flujo=obj.flujo, orden=1)

        """ esto es para pasar automaticamente a un estado doing
            si se agrega horas trabajas 
        """
        if UserStory.objects.filter(pk=obj.id).exists():
            tiempo_trabajado_original = UserStory.objects.get(pk=obj.id).tiempo_trabajado
            if tiempo_trabajado_original != obj.tiempo_trabajado:
                estado_original = UserStory.objects.get(pk=obj.id).estado_actividad
                if estado_original == "TO":
                    obj.estado_actividad = "DG"

        if obj.proyecto == None:
            obj.proyecto = obj.sprint.proyecto

        obj.save()

        # def has_change_permission(self, request, obj=None):
        """
        Retorna True si el usuario existente tiene un rol con los permisos
        requeridos
        """

        """
예제 #23
0
 def for_public_display(self):
     objs = self.get_queryset().filter(
         invoice__expiration_date__gte=timezone_today(),
     ).annotate(donated_amount=models.Sum('invoice__amount'))
     return objs.order_by('-donated_amount', 'display_name')
예제 #24
0
def get_users_created_yesterday():
    return User.objects.filter(date_joined__date=(timezone_today() -
                                                  datetime.timedelta(days=1)))