A Django app to create and use ReportBro reports with a sample admin. This allows you to generate yours reports using three options: by its code or name from database or JSON template.
Project description
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)
Project details
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
|