Mostrando entradas con la etiqueta python. Mostrar todas las entradas
Mostrando entradas con la etiqueta python. Mostrar todas las entradas

miércoles, 28 de enero de 2015

web2py mostrar un preview de una imagen antes de subirla

Ultimamente he estado desarrollando en web2py y me he encontrado con ciertos roble que ire posteando en futuras publicaciones y también mostrare de como las he resuelto, bueno el primero que encontré fue que usando SQLFORM los campos de tipo upload no muestran un preview de la imagen antes de subirlo, bueno eso se puede resolver con puro javascript pero si son muchos campos hacer eso es muy tardado, por eso programe un widget basado en el original pero que permita hacer un preview antes de subir la imagen.

El plugin se puede bajar de aquí:


La utilización es muy sencilla solo se tiene que importar el modulo en donde se encuentre la definición de nuestra tabla (por ejemplo en db.py) y lo siguiente es pasarle en widget en al field de tipo upload

#db.py
from plugin_widget_upload import CustomUploadWidget
db.define_table('table_test', Field('imge', 'upload',widget=CustomUploadWidget.widget))

Lo siguiente es crear el form de la manera de siempre.


form = SQLFORM(
                db.table_test
                )


Bueno eso es todo por hoy, a también estoy creando un fork de web2py con algunos cambios cuando tenga un avance lo mostrare aunque de todas formas ire compartiendo los cambios en forma de plugins.

martes, 27 de enero de 2009

scripts de nautilus

navegando por la red me encontre con este interesante scripts para nautilus con el cual podemos acceder a la configuración de la resolución de la pantalla con un par de clicks

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#

import nautilus
import subprocess
import os

# put or comment Display configurators here.
# FORMAT
# [ (string)command , (boolean)need gksu ]
HELPERS=[
["/usr/bin/displayconfig-gtk", True],
["/usr/bin/nvidia-settings", False],
["/usr/bin/gnome-display-properties", False],
["/usr/bin/grandr", False],
]

class OpenDisplaySettings(nautilus.MenuProvider):
def __init__(self):
pass

def open_window(self, *args):
cmd=[]
for helper in HELPERS:
if os.path.exists(helper[0]):
if helper[1]: cmd.append("/usr/bin/gksu")
cmd.append(helper[0])
subprocess.Popen(cmd,
shell=False,
bufsize=0,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
close_fds=True)
return


def get_background_items(self, window, _file):
ICON="/usr/share/icons/gnome/16x16/devices/display.png"

item = nautilus.MenuItem('NautilusPython::open-display-prop',
'Configuración de pantalla',
'Abrir configuración gráfica de pantalla')
if not os.path.exists(ICON):
ICON="gtk-dialog-warning"
item.set_property('icon', ICON)
item.connect('activate', self.open_window)
return item,

Guardarlo como "open-display-prop.py" en el directorio ~/.nautilus/python-extensions/ (sino existe se crea) despues reinicia el entorno grafico y listo.

¿Qué obtenemos?






Nota: Para que funcione tenemos que tener instalado python-nautilus.

Search this blog