FYI
http://kmuto.jp/debian/hcl/index.cgi
Por favor, identifícate o regístrate.
Moderadores: metalgear, coyote
e-Minguez escribió:FYI
http://kmuto.jp/debian/hcl/index.cgi
4eVaH escribió:Capitan, nunca he programado en python, pero no tengo problemas para aprender, en un momento dado podría ayudarte a la hora de picar código.
En realidad te podría ayudar en casi cualquier lenguaje, incluyendo html+css, javascript y php.
Saludos.
# -*- coding: utf-8 -*-
from django.db import models
class component(models.Model):
# Nombre del tipo de componente en español. Por ejemplo, "tarjeta gráfica"
es = models.CharField(max_length=70)
# Nombre del tipo de componente en inglés. Por ejemplo, "graphic card"
en = models.CharField(max_length=70)
# Una descripción de aquel tipo de componente al que se refiere en español.
description_es = models.CharField(max_length=250)
# Una descripción de aquel tipo de componente al que se refiere en español.
description_en = models.CharField(max_length=250)
# Un listado de rutas a imágenes
images = models.ManyToManyField(image)
class hardware(models.Model):
# La id del componente (padre). Es un número entero. Por ejemplo, si esta es una conceptronic C54RU (tarjeta inalámbrica USB) tendrá la id de "tarjeta inalámbrica" de la tabla componentes.
component = models.IntegerField()
# La marca del producto. Por ejemplo, Conceptronic.
mark = models.CharField(max_length=100)
# El modelo. En este caso, C54RU, aunque pueden ser más largos.
model = models.CharField(max_length=100)
# De un mismo modelo y marca pueden haber variantes incluso de un mismo chip. aquí se especifica.
variant = models.CharField(max_length=50)
# El chip, en este caso, rt73 (ralink).
chip = models.CharField(max_length=50)
# La salida al hacer lsusb, lspci que corresponde a este hardware.
lsx = models.CharField(max_length=200)
# Una descripción del hardware en español.
description_es = models.CharField(max_length=250)
# Una descripción del hardware en inglés.
description_en = models.CharField(max_length=250)
# Un listado de rutas a imágenes
images = models.ManyToManyField(image)
# Valor True o False. Especifica con True que la fila de datos es la que deben ver los usuarios al referirse a este articulo. Por ejemplo, puede haber una primera fila refiriendose a un articulo llamado "conceptronc C54Ru", pero que después, otro usuario envie una corrección con el nombre "conceptronic C54Ru" (notese la "i"). Un moderador da la razón a la corrección y la primera versión, deja de ser la publicada (la que ven "en primera plana" los usuarios) para pasar a verse la versión corregida.
published = models.BooleanField()
# Un número entero que se refiere a un id o un valor Nulo. En el caso anterior mostrado, la primera versión tendría un valor nulo, ya que no se basa en ningún articulo (es la primera versión) pero, la corrección sería hijo de la primera versión, ya que está basada en esta. En dicho caso, el valor sería la id de la fila padre.
father = models.IntegerField()
# Un valor numérico entero. Siguiendo el mismo ejemplo a los antes nombrados, imaginemos que se lanza una tercera versión basada en la segunda (no esta basada en la primera, es una modificación de la segunda versión). En dicho caso, "father" (el padre) sería la id de la segunda versión, pero, en todas las versiones se mantiene la id de la primera versión, la original, y se llama "first_father". De esta manera todos los comentarios y soluciones enlazarán siempre al componente independientemente de la versión en la que se encuentre.
first_father = models.IntegerField()
# Valoración del 0 al 4 del hardware, siendo ya la valoración calculada.
stars = models.FloatField(max_digits=4, decimal_places=3)
# Votos actuales en la valoración del hardware.
stars_votes = models.IntegerField()
# Valor numérico entero. La id de usuario que envia esta fila de información.
user = models.IntegerField()
# Fecha en la que se envió la fila.
date = models.DateField(auto_now)
class solution(models.Model):
####### No debe confundirse entre "solution" y "page". La tabla "solution" incluye información sobre un procedimiento posible para hacer funcionar un determinado hardware. Por ejemplo, para nuestra Conceptronic C54RU con chip rt73 podemos usar los drivers de Serialmonkey, ndiswrapper o los drivers oficiales de ralink (privativos). Una página será la explicación de como utilizar un método en un idioma, para una arquitectura y una distribución. Por ejemplo, puede haber una página en español explicando como usar los drivers de serialmonkey para x86 en la distro Debian, otra página en inglés para como usar los drivers de serialmonkey para x86 en Debian, otra página en español de como usar ndiswrapper en x86_64 en Gentoo...
# Valor numérico entero. Es la id de "first_father" de la tabla hardware.
hardware = models.IntegerField()
# Valor True o False. Sigue la misma idea que el published de la tabla hardware.
published = models.BooleanField()
# Un número entero que se refiere a un id o un valor Nulo. Sigue la misma idea que el "father" de la tabla hardware.
father = models.IntegerField()
# Un valor numérico entero. Sigue la misma idea que el "first_father" de la tabla hardware.
first_father = models.IntegerField()
# El nombre del método en español.
name_es = models.CharField(max_length=100)
# El nombre del método en inglés.
name_en = models.CharField(max_length=100)
# Una descripción del método en español.
description_es = models.CharField(max_length=250)
# Una descripción del método en inglés.
description_en = models.CharField(max_length=250)
# Valoración del 0 al 4 de si es bueno el método, siendo ya la valoración calculada.
stars = models.FloatField(max_digits=4, decimal_places=3)
# Votos actuales en la valoración del método.
stars_votes = models.IntegerField()
# Valor numérico entero. La id de usuario que envia esta fila de información.
user = models.IntegerField()
# Fecha en la que se envió la fila.
date = models.DateField(auto_now)
# Valor True o False donde True indica que es un driver privativo.
privative = models.BooleanField()
class page(models.Model):
####### Las variantes de un manual que se encuentran en el mismo idioma, para la misma arquitectura y la misma distro o distros serán propuestas de mejora, pero si por ejemplo se hace una variante de un mismo manual pero en otro idioma (una traducción) no será una mejora, sino que se hace una página nueva que será directamente hija de "solution".
# Valor numérico entero. Es la id de "first_father" de la tabla solution.
solution = models.IntegerField()
# Un número entero que se refiere a un id o un valor Nulo. Sigue la misma idea que el "father" de la tabla hardware.
father = models.IntegerField()
# Un valor numérico entero. Sigue la misma idea que el "first_father" de la tabla hardware.
first_father = models.IntegerField()
# Valor True o False. Sigue la misma idea que el published de la tabla hardware.
published = models.BooleanField()
# Idioma en el que está la página. Para español "es" y para inglés "en".
lang = models.CharField(max_length=2)
# Es la distribución o distribuciones para las que está pensado el manual.
distros = modelsManyToManyField(distro)
# La arquitectura (o, para decir que es valido para todas las arquitecturas, "All") para la que está pensado el manual.
architectures = models.ManyToManyField(architecture)
# Valor numérico entero. La id de usuario que envia esta fila de información.
user = models.IntegerField()
# Fecha en la que se envió la fila.
date = models.DateField(auto_now)
# Valoración del 0 al 4 de la calidad de esta información.
stars = models.FloatField(max_digits=4, decimal_places=3)
# Votos actuales en la valoración de la información.
stars_votes = models.IntegerField()
# El texto con los pasos a seguir para hacer funcionar el hardware.
text = models.TextField()
class comment(models.Model):
# Que tipo de comentario es. Puede ser un comentario ("comment") o un reporte de fallo o problema ("bug").
comment_type = models.CharField(max_length=8)
# Un valor del 0 al 4. Si es un comentario, Con el 0 no agradeces para nada la página y con el 4 mucho. Si es un reporte de fallo, con 0 no le das mucha importancia y con el 4 mucha.
stars = models.IntegerField()
# Un valor numérico o un valor nulo. Se refiere a la id del comentario o del bug al que responde.
reply = models.IntegerField()
# Valor numérico entero. La id de usuario que envia esta fila de información.
user = models.IntegerField()
# Fecha en la que se envió la fila.
date = models.DateField(auto_now)
# El titulo del comentario o bug.
title = models.CharField(max_length=40)
# El texto de la contestación
text = models.TextField()
class attached(models.Model):
# Nombre del adjunto.
name = models.CharField(max_length=40)
# Versión del adjunto.
name = models.CharField(max_length=20)
# Nombre del archivo en el servidor del adjunto.
name = models.CharField(max_length=100)
# Veces descargado el archivo.
downloads = models.IntegerField()
# El "first_father" de la fila en la tabla "page" donde debe aparecer la descarga.
pages = models.ManyToManyField(page)
# El "first_father" de la fila en la tabla "comment" donde debe aparecer la descarga.
comments = models.ManyToManyField(comment)
# Valor numérico entero. La id de usuario que envia esta fila de información.
user = models.IntegerField()
# Fecha en la que se envió la fila.
date = models.DateField(auto_now)rcaba escribió:He estado mirando la base de datos y en principio creo que tiene todo lo necesario, he estado mirando los comentarios ya que lo poco que he trabajado con base de datos a sido con Oracle y no entiendo muy bien la sintaxis de Django, aunque estoy mirando el manual que nos has ofrecido para enterarme un poco mejor, en definitiva creo que esta bien para empezar.
Una preguntilla, as hecho la base de datos a pelo de cabeza o has hecho algun diagrama de clases o entidad-relacion? yo he tenido que hacerme un boceto que sino no veo claras las asociaciones asi sobre el papel, lo digo porque si lo has hecho podías subirlo ya que es mas fácil revisarlo.
Un Saludo y animo, ayudaremos en lo que se pueda.
e-Minguez escribió:El enlace era para que copiarais ideas, se que no es lo mismo, pero igual os sirve.
aunque más o menos por mí cuenta ya lo tengo todo pensado... va a ser más complejo que el del enlace que me has enseñado, pero te lo agradezco 
capitanquartz escribió:¿La escaneo? xD Tiene flechas en rojo y todo... incluso en una esquina dibujé una carita sonriente. La syntaxis es la de python.
rcaba escribió:capitanquartz escribió:¿La escaneo? xD Tiene flechas en rojo y todo... incluso en una esquina dibujé una carita sonriente. La syntaxis es la de python.
Sino te importa escanearla? en python todavía no he programado, lo he hecho sobretodo en c++ y algo en java, pero bueno tenía ganas de mirar python que esuchado cosas muy buenas.
Saludos.

Usuarios navegando por este foro: No hay usuarios registrados visitando el foro y 0 invitados