Skip to content

Instantly share code, notes, and snippets.

View gilsonbp's full-sized avatar
🏠
Working from home

Gilson Paulino gilsonbp

🏠
Working from home
  • Arapiraca, Alagoas, Brasil
  • 19:23 (UTC -03:00)
  • X @gilsonbp
View GitHub Profile
@gilsonbp
gilsonbp / settings_logging.py
Created August 27, 2021 13:22
Exemplo de configuração de logs no Django
# Não é uma boa prática ter esse if dentro do settings mas funciona muito bem dessa forma.
if not os.path.exists(os.path.join(BASE_DIR, "logs")):
os.makedirs(os.path.join(BASE_DIR, "logs"))
LOG_DIR = BASE_DIR / "logs"
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"verbose": {
@gilsonbp
gilsonbp / update_notification_channel.py
Created November 6, 2020 19:12
Atualiza o campo notification_channel com um canal do Slack para enviar as notificações
# Seleciona as filas que deseja alterar:
queues = SQSQueue.objects.filter(
name__in=["dead__products_api__seller_product_moderation__approved", "products_api__seller_product_moderation__approved"]
)
# Faz um loop na lista atualizando o campo notification_channel
for queue in queues:
if not queue.notification_channel: # Verifica se a fila já não tem um outro canal do slack
queue.notification_channel = "tech-alerts-queues-catalog"
queue.save()
In[2]: from catalog_keeper.clients import seller_product_moderation_client
In[3]: dir(seller_product_moderation_client)
Out[3]:
['__class__',
'__delattr__',
'__dict__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
@gilsonbp
gilsonbp / -.md
Created April 22, 2019 19:07 — forked from vinicius73/0-contribua-.md
Guia de referencias sobre estudo de JavaScript

Contribua

Se você quiser adicionar mais algum tópico deixe seu comentário, o objetico é facilitar para os iniciantes ou aqueles que buscam dominar JavaScript, quais tópicos são importantes para dominar JavaScript.

São tópicos para quem sabe o minimo de JavaScript (declarar variáveis), a ordem em que eles aparecem são por importância para o dominio como um todo. Mesmo que você já tenha experiência com JS, recomendo que leia os links de cada tópico para fortalecer suas bases teóricas e ter um comportamento mais profundo da linguagem.

Lista originalmente criada e compilada por Vinicius Reis

@gilsonbp
gilsonbp / gpboto3.py
Created March 22, 2019 00:38
Implements sending files to S3 using Boto3 and the same django-storages parameters.
import boto3
from boto3.s3.transfer import S3Transfer
from django.conf import settings
__author__ = "Gilson Paulino"
__date__ = "Created by 21/03/19"
__copyright__ = "Copyright 2019"
__email__ = "gilsonbp@gmail.com"
@gilsonbp
gilsonbp / middleware.py
Created January 10, 2019 15:55
It increments the request.user when the authentication is of type jwt. By default it is not incremented.
from re import sub
import jwt
from django.conf import settings
from django.contrib.auth import get_user_model
from jwt import DecodeError
from rest_framework.exceptions import PermissionDenied
User = get_user_model()
@gilsonbp
gilsonbp / specific_schema.py
Created January 10, 2019 15:45
To perform a query using Django ORM in a specific schema
from django.db import connection # Used for django tenants.
# I am assuming you are in the main public tenant.
connection.set_schema_to_public() # Switch to Public.
# Here is how you switch to a different tenant.
connection.set_schema("the-schema-name-of-your-tenant", True) # Switch to Tenant.
# You are now in the tenant you want, therefore any call you make will be made from that db schema.
@gilsonbp
gilsonbp / middleware_redirect.py
Created December 26, 2018 17:32
Middleware que faz um teste específico então redireciona para uma rota
from django.shortcuts import redirect
class RedirectHome(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if True: # Faz o teste ante de redirecionar
return redirect('site:home')
@admin.register(Cr)
class CrAdmin(admin.ModelAdmin):
list_display = ['id', 'get_venda', 'get_cpf_cliente', 'cliente',
'criado_em', 'get_status_admin']
list_display_links = list_display
search_fields = ['titulo']
autocomplete_fields = ['cliente', 'cond_pagamento', 'conta_padrao',
'centro_custo']
readonly_fields = ['criado_em', 'get_titulo_id', 'get_venda', 'status']
{% block extra_style %}
<link href="{% static 'painel/css/plugins/select2/select2.min.css' %}" rel="stylesheet">
<link href="{% static 'painel/bootstrap-datepicker/dist/css/bootstrap-datepicker3.min.css' %}"
rel="stylesheet">
{% endblock %}
{% block extra_js %}
<script src="{% static 'painel/js/plugins/select2/select2.full.min.js' %}"></script>