WIP: Changed annotation syntax to properties and created mutable user_properties #31

Closed
rskthomas wants to merge 27 commits from rework/properties into main
Owner

Changed the annotations system into a properties one (user, system and lot properties).

Renamed this new syntax on whole project so this changes a lot of files.

Added a device_log that writes onto a file (to not fill up console logging ). Its defaulted to /var/logs.

Now user properties are editable (¿Should the key be modifiable too?) and can also be deleted.

image

image

After extensive testing, found no errors so I deleted WIP prefix. This is part of ereuse/projectes#108 (step 1).

To do the db migrations:

./manage.py makemigrations
./manage.py migrate

Changed the annotations system into a properties one (user, system and lot properties). Renamed this new syntax on whole project so this changes a lot of files. Added a device_log that writes onto a file (to not fill up console logging ). Its defaulted to /var/logs. Now user properties are editable (¿Should the key be modifiable too?) and can also be deleted. ![image](/attachments/78b690a4-9389-4aa2-8b52-57aae72ed7f0) ![image](/attachments/f3e45d5e-564d-4ba3-bc05-2cc8782f3325) After extensive testing, found no errors so I deleted WIP prefix. This is part of ereuse/projectes#108 (step 1). To do the db migrations: `./manage.py makemigrations` `./manage.py migrate`
281 KiB
287 KiB
rskthomas added 19 commits 2024-11-16 18:37:02 +00:00
rskthomas added 1 commit 2024-11-21 13:45:45 +00:00
rskthomas changed title from WIP: rework/properties to rework/properties 2024-11-28 19:41:30 +00:00
pedro was assigned by rskthomas 2024-11-28 19:47:55 +00:00
pedro was unassigned by rskthomas 2024-11-28 19:51:53 +00:00
rskthomas changed title from rework/properties to Changed annotation syntax to properties and created mutable user_properties 2024-11-28 19:54:20 +00:00
cayop requested changes 2024-12-09 11:42:17 +00:00
cayop left a comment
Owner

Me da un error cuando intento subir un snapshot con:

python3 manage.py up_snapshots example/snapshots/ user@example.org

El error que me da es:

django.db.utils.OperationalError: no such table: evidence_systempropert

creo que falta algun fichero de migracion que no has subido o falta correr una vez mas el

python3 manage.py makemigrations
Me da un error cuando intento subir un snapshot con: ``` python3 manage.py up_snapshots example/snapshots/ user@example.org ``` El error que me da es: ``` django.db.utils.OperationalError: no such table: evidence_systempropert ``` creo que falta algun fichero de migracion que no has subido o falta correr una vez mas el ``` python3 manage.py makemigrations ```
@ -220,0 +224,4 @@
'device_log_file': {
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': '/var/log/device_changes.log',
Owner

Creo que es mejor poner el directorio donde reside device_changes.log en una variable definida en el .env y por defecto poner algo como "/tmp"

Creo que es mejor poner el directorio donde reside device_changes.log en una variable definida en el .env y por defecto poner algo como "/tmp"
@ -11,2 +13,2 @@
class Annotation(models.Model):
#TODO: base class is abstract; revise if should be for query efficiency
class Property(models.Model):
Owner

La clase Type no tiene sentido que este en Property. Creo que es mejor ponerla en la clase UserProperty. Lo mismo con la columna type. Solo pondria la columna type en UserProperty. Esto te libera del CheckConstraint de los dos modelos que has creado.
El CheckConstraint lo puedes cambiar en SystemProperty haciendo que solo coja los fields key, uuid

La clase Type no tiene sentido que este en Property. Creo que es mejor ponerla en la clase UserProperty. Lo mismo con la columna type. Solo pondria la columna type en UserProperty. Esto te libera del CheckConstraint de los dos modelos que has creado. El CheckConstraint lo puedes cambiar en SystemProperty haciendo que solo coja los fields key, uuid
@ -28,1 +30,4 @@
class Meta:
#Only for shared behaviour, it is not a table
abstract = True
Owner

En general separo las clases con dos lineas y los metodos de la clase solo con una linea
Si un fichero no tiene clases y solo tiene funciones, entonces separo esas funciones con dos lineas

En general separo las clases con dos lineas y los metodos de la clase solo con una linea Si un fichero no tiene clases y solo tiene funciones, entonces separo esas funciones con dos lineas
Author
Owner

Perfecto! Lo tendré en cuenta a partir de ahora y lo cambio en donde vea que haga falta

Perfecto! Lo tendré en cuenta a partir de ahora y lo cambio en donde vea que haga falta
@ -34,0 +52,4 @@
type = models.SmallIntegerField(default=Property.Type.USER)
class Meta:
constraints = [
Owner

Esto desaparece con lo que no tienes que preocuparte. Pero fíjate que has puesto dos variables con el mismo nombre en la clase Meta. Osea que has redefinido una variable y una de las dos no se usará. Para otra ocasión creo que seria más conveniente poner todo dentro de una única variable constraints ya que de por si es una lista. Podrías haber hecho uso de los poderes de la lista añadiéndolo como un elemento más. Lo dicho, no te preocupes por esto ahora porque esto tiene que desaparecer.

Esto desaparece con lo que no tienes que preocuparte. Pero fíjate que has puesto dos variables con el mismo nombre en la clase Meta. Osea que has redefinido una variable y una de las dos no se usará. Para otra ocasión creo que seria más conveniente poner todo dentro de una única variable constraints ya que de por si es una lista. Podrías haber hecho uso de los poderes de la lista añadiéndolo como un elemento más. Lo dicho, no te preocupes por esto ahora porque esto tiene que desaparecer.
Author
Owner

La verdad que sí, fue un error tan tonto que no sé como no lo ví. Estoy haciendo el refactoring como comentaste más arriba así no hace falta dos constraints

La verdad que sí, fue un error tan tonto que no sé como no lo ví. Estoy haciendo el refactoring como comentaste más arriba así no hace falta dos constraints
rskthomas added 2 commits 2024-12-09 21:38:48 +00:00
rskthomas added 1 commit 2024-12-09 22:01:20 +00:00
rskthomas added 1 commit 2024-12-10 19:52:51 +00:00
rskthomas added 1 commit 2024-12-10 19:53:28 +00:00
rskthomas added 2 commits 2024-12-10 19:55:31 +00:00
Author
Owner

He realizado los cambios, tales como:

  • Agregué las migraciones y ahora python3 manage.py up_snapshots example/snapshots/ user@example.org debería correr bien
  • El field type solamente existe en UserProperty y LotProperty (LotProperty tiene tipo Document)
  • device_changes.log se guarda en un path definidio en el .env
He realizado los cambios, tales como: - Agregué las migraciones y ahora `python3 manage.py up_snapshots example/snapshots/ user@example.org` debería correr bien - El field type solamente existe en UserProperty y LotProperty (LotProperty tiene tipo Document) - device_changes.log se guarda en un path definidio en el .env
rskthomas changed title from Changed annotation syntax to properties and created mutable user_properties to WIP: Changed annotation syntax to properties and created mutable user_properties 2024-12-17 17:28:10 +00:00
Author
Owner

Cambiado a WIP temporalmente debido a que se encuentra contenido en ereuse/devicehub-django#37

Cambiado a WIP temporalmente debido a que se encuentra contenido en ereuse/devicehub-django#37
rskthomas closed this pull request 2024-12-18 11:36:14 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: ereuse/devicehub-django#31
No description provided.