New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

django-reportbroD

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

django-reportbroD

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.

  • 4.1.2
  • PyPI
  • Socket score

Maintainers
1

django-reportbrod

A Django app to create, use and export ReportBro reports (free version) with a admin.

Django lib JS lib

Quick start

  1. Add "django_reportbroD" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [
... ,
'django_reportbroD.apps.ReportbrodConfig',
   ]

  1. Include the reportbroD URLconf in your project urls.py like this:
   path("reportbroD/", include("django_reportbroD.urls", namespace="reportbroD")),  
  1. Run python manage.py migrate to create the models and to migrating to data base.

  2. Start the development server.

  3. 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.

  1. 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',
   ...
           ],  
  1. Include the i18N URLconf in your project urls.py like this:
   path("i18n/", include("django.conf.urls.i18n")),  

Using report

  1. 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")

  1. 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)

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc