synctoAsync
This commit is contained in:
@@ -18,7 +18,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent
|
|||||||
SECRET_KEY = 'django-insecure-5*mm&uf5zq@t6nrs_5z8-_qtyapm^3&yz^wqqkc_a!v(!ulj-^'
|
SECRET_KEY = 'django-insecure-5*mm&uf5zq@t6nrs_5z8-_qtyapm^3&yz^wqqkc_a!v(!ulj-^'
|
||||||
|
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = True
|
DEBUG = False
|
||||||
|
|
||||||
ALLOWED_HOSTS = ['*']
|
ALLOWED_HOSTS = ['*']
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import requests
|
|||||||
from asgiref.sync import sync_to_async
|
from asgiref.sync import sync_to_async
|
||||||
from .models import saldoModel
|
from .models import saldoModel
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
async def req():
|
async def req():
|
||||||
|
|
||||||
results = await sync_to_async(get_saldo, thread_sensitive=True)
|
results = await sync_to_async(get_saldo, thread_sensitive=True)
|
||||||
@@ -19,6 +20,4 @@ def get_saldo(request):
|
|||||||
return {
|
return {
|
||||||
'saldo':Saldo,
|
'saldo':Saldo,
|
||||||
'fecha': datetime.date.today()
|
'fecha': datetime.date.today()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1,10 +1,13 @@
|
|||||||
from django.urls import path,include
|
from django.urls import path,include
|
||||||
from .views import index,add_timbre, timbres_cliente,saldo_funct,ClientesUpdateView, export_Excel
|
from .views import index,add_timbre, timbres_cliente,saldo_funct,ClientesUpdateView, export_Excel
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', index, name='index'),
|
path('', index, name='index'),
|
||||||
path('add_timbre/', add_timbre, name='add_timbre'),
|
path('add_timbre/', add_timbre, name='add_timbre'),
|
||||||
path('timbres_cliente/<str:RFC>/', timbres_cliente, name='timbres_cliente'),
|
path('timbres_cliente/<str:RFC>/', timbres_cliente, name='timbres_cliente'),
|
||||||
path('get_saldo/', saldo_funct, name='saldo_funct'),
|
path('get_saldo/', saldo_funct, name='saldo_funct'),
|
||||||
path('cliente/update/<int:pk>/',ClientesUpdateView.as_view(),name='update_cliente'),
|
path('cliente/update/<int:pk>/',ClientesUpdateView.as_view(),name='update_cliente'),
|
||||||
|
|
||||||
path('get_timbres_xls/', export_Excel, name='export_Excel'),
|
path('get_timbres_xls/', export_Excel, name='export_Excel'),
|
||||||
|
|
||||||
]
|
]
|
||||||
@@ -10,7 +10,7 @@ from django.views.generic.edit import UpdateView
|
|||||||
from .forms import ClienteForm
|
from .forms import ClienteForm
|
||||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
from django.contrib.auth.mixins import UserPassesTestMixin
|
from django.contrib.auth.mixins import UserPassesTestMixin
|
||||||
|
from asgiref.sync import sync_to_async
|
||||||
|
|
||||||
#EXCEL
|
#EXCEL
|
||||||
from openpyxl import Workbook
|
from openpyxl import Workbook
|
||||||
@@ -18,12 +18,9 @@ from openpyxl.styles import Alignment, Border, Font, PatternFill, Side
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def index(request):
|
def index(request):
|
||||||
|
|
||||||
clientes_list = Clientes.objects.all()
|
clientes_list = Clientes.objects.all()
|
||||||
|
|
||||||
|
|
||||||
page = request.GET.get('page', 1)
|
page = request.GET.get('page', 1)
|
||||||
|
|
||||||
search = request.GET.get('search',None)
|
search = request.GET.get('search',None)
|
||||||
rfcc = request.GET.get('rfcc', None)
|
rfcc = request.GET.get('rfcc', None)
|
||||||
if rfcc:
|
if rfcc:
|
||||||
@@ -156,7 +153,10 @@ class ClientesUpdateView(UserPassesTestMixin,LoginRequiredMixin,UpdateView):
|
|||||||
return self.request.user.groups.filter(name= 'admin_soft')
|
return self.request.user.groups.filter(name= 'admin_soft')
|
||||||
|
|
||||||
|
|
||||||
|
#@login_required
|
||||||
|
@sync_to_async(thread_sensitive=False)
|
||||||
def export_Excel(request):
|
def export_Excel(request):
|
||||||
|
|
||||||
RFC = request.GET.get('RFC', '')
|
RFC = request.GET.get('RFC', '')
|
||||||
|
|
||||||
today = datetime.date.today()
|
today = datetime.date.today()
|
||||||
@@ -172,18 +172,17 @@ def export_Excel(request):
|
|||||||
ws['C1']='Fecha'
|
ws['C1']='Fecha'
|
||||||
contador =2
|
contador =2
|
||||||
|
|
||||||
for q in objeto_a_trabajar:
|
for q in range(0,100000):#objeto_a_trabajar:
|
||||||
column = str(contador)
|
column = str(contador)
|
||||||
|
ws['A' + column] = q#.uuid
|
||||||
ws['A' + column] = q.uuid
|
ws['B'+ column] = q#.rfcc
|
||||||
ws['B'+ column] = q.rfcc
|
ws['C'+ column] = q#.fecha
|
||||||
ws['C'+ column] = q.fecha
|
|
||||||
contador += 1
|
contador += 1
|
||||||
|
|
||||||
|
nombre_archivo = f"Timbres_{RFC}_{str(year)}_{str(month)}.xlsx"
|
||||||
nombre_archivo = "ListadoObjeto.xlsx"
|
|
||||||
response = HttpResponse(content_type="application/ms-excel")
|
response = HttpResponse(content_type="application/ms-excel")
|
||||||
contenido = "attachment; filename = {0}".format(nombre_archivo)
|
contenido = "attachment; filename = {0}".format(nombre_archivo)
|
||||||
response["Content-Disposition"] = contenido
|
response["Content-Disposition"] = contenido
|
||||||
wb.save(response)
|
wb.save( response)
|
||||||
return response
|
|
||||||
|
return response
|
||||||
@@ -46,7 +46,7 @@ Timbres disponibles Comercio Digital: {{saldo.saldo}}
|
|||||||
<a href="{% url 'timbres_cliente' obj.RFC %}" class="btn btn-info">Ver Timbres</a>
|
<a href="{% url 'timbres_cliente' obj.RFC %}" class="btn btn-info">Ver Timbres</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td><a href="{% url 'export_Excel' %}?RFC={{obj.RFC}}">Excel</a></td>
|
<td><a target="_blank" rel="noopener noreferrer" href="{% url 'export_Excel' %}?RFC={{obj.RFC}}">Excel</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
Reference in New Issue
Block a user