django-reportbrod
A Django app to create, use and export ReportBro reports (free version) with a admin.
Quick start
- Add "django_reportbroD" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [
... ,
'django_reportbroD.apps.ReportbrodConfig',
]
- Include the reportbroD URLconf in your project urls.py like this:
path("reportbroD/", include("django_reportbroD.urls", namespace="reportbroD")),
-
Run
python manage.py migrateto create the models and to migrating to data base. -
Start the development server.
-
Visit the
/reportbroD/URL to create/update/edit/duplicate/remove reports.
Traslations
The next step is optional if you want to use in Spanish and English, otherwise it isn't necessary.
- Add LocaleMiddleware to your MIDDLEWARE list in your settings. This allows the reporting app to have translation in Spanish and English.
MIDDLEWARE = [
'django.middleware.locale.LocaleMiddleware',
...
],
- Include the i18N URLconf in your project urls.py like this:
path("i18n/", include("django.conf.urls.i18n")),
Using report
- Create a app to using the view file or other file .py for defining the view function to show/export selected report
from django_reportbroD.utils import convert_to_base64, convert_list_to_dict, to_dict, export_report_by_code, export_report_by_name, export_report_from_JSON
def generar_pdf(request):
products=Product.objects.all()
#converting in a dictionary
productos=[to_dict(p) for p in products]
imagen= convert_to_base64(products.first().imagen.url, 'jpg')
data={
"productos":productos,
"imagen":imagen
}
code_report= 12
return export_report_by_code(template_code=code_report, data=data, extension="pdf")
def generar_xls(request):
products=Product.objects.all()
#converting in a dictionary
productos=[to_dict(p) for p in products]
imagen= convert_to_base64(products.first().imagen.url, 'jpg')
data={
"productos":productos,
"imagen":imagen
}
return export_report_by_name(template_name="Plantilla de obrero" , data=data, extension="xlsx")
def generar_reporte(request):
products=Product.objects.all()
#converting in a dictionary
productos=[to_dict(p) for p in products]
imagen= convert_to_base64(products.first().imagen.url, 'jpg')
data={
"productos":productos,
"imagen":imagen
}
return export_report_from_JSON(path_json="reporte.json", data=data, extension="xlsx")
- Include a report into Django Admin through a action function.
# admin.py
from .views import reporte
...
def reportbro(modeladmin, request, queryset):
w=queryset.first()
if w:
return reporte(request, w.code)
reportbro.short_description="Working Report"
@admin.register(Working)
class WorkAdmin(admin.ModelAdmin):
list_display = ("worker","date", "hours","payhorary", "descount", "pay_extra", "pay" )
list_filter=["date", "worker"]
list_display_links = ("worker","date" )
actions=[reportbro]
Parameter >> download = True
In this case, download parameter from export_report_by_code, export_report_by_name and export_report_from_JSON functions must be "True" to avoid any errors when the report format is "pdf".
#views.py
from django_reportbroD.utils import convert_to_base64, convert_list_to_dict, to_dict, export_report_by_code, export_report_by_name, export_report_from_JSON
...
def reporte(request, code):
worker=Worker.objects.filter(code=code).first()
workings=Working.objects.filter(worker=worker)
asistencia= [
{
"date": w.date.date,
"payhorary" : w.payhorary,
"descount" : w.descount,
"pay_extra" : w.pay_extra,
"pay" : w.pay,
}
for w in workings
]
trabajador=to_dict(worker)
trabajador["horary"]=worker.horary.horario()
trabajador["area"]=worker.area.Area()
data={
"worker":trabajador,
"working": asistencia,
"date":datetime.datetime.now()
}
return export_report_by_code(template_code=7, data=data, file="nuevo", download=True)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django_reportbrod-4.1.2.tar.gz.
File metadata
- Download URL: django_reportbrod-4.1.2.tar.gz
- Upload date:
- Size: 6.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce8a54d4c0388463f505566c6bbf6210f39ad5034cfc55156e43a0b9f7fe962a
|
|
| MD5 |
1d578b5e25228a8a916e782a8ceb6600
|
|
| BLAKE2b-256 |
651b109eb83d2b79bdb9e2e6dc45b2ee23561352d5cb31a3422ff8ad19d1beab
|