diff --git a/paramecio/citoplasma/generate_admin_class.py b/paramecio/citoplasma/generate_admin_class.py
index 8d43b7a..ee2e89c 100644
--- a/paramecio/citoplasma/generate_admin_class.py
+++ b/paramecio/citoplasma/generate_admin_class.py
@@ -71,7 +71,7 @@ class GenerateAdminClass:
title_edit=I18n.lang('common', 'add_new_item', 'Add new item')
if GetPostFiles.get['id']!='0':
- post=self.model.select_a_row(GetPostFiles.get['id'])
+ post=self.model.select_a_row(GetPostFiles.get['id'], [], True)
title_edit=I18n.lang('common', 'edit_new_item', 'Edit item')
if post==None:
diff --git a/paramecio/cromosoma/corefields.py b/paramecio/cromosoma/corefields.py
index fb59b70..7e6c2ab 100644
--- a/paramecio/cromosoma/corefields.py
+++ b/paramecio/cromosoma/corefields.py
@@ -85,7 +85,9 @@ class TextField(PhangoField):
class ForeignKeyField(IntegerField):
def __init__(self, name, related_table, size=11, required=False, identifier_field='id', named_field="id", select_fields=[]):
-
+
+ super(ForeignKeyField, self).__init__(name, size, required)
+
self.table_id=related_table.name_field_id
self.table_name=related_table.name
@@ -95,10 +97,10 @@ class ForeignKeyField(IntegerField):
self.named_field=named_field
self.select_fields=select_fields
-
- super(ForeignKeyField, self).__init__(name, size, required)
self.foreignkey=True
+
+ self.change_form(coreforms.SelectModelForm, [related_table, self.named_field, self.identifier_field])
def get_type_sql(self):
diff --git a/paramecio/cromosoma/coreforms.py b/paramecio/cromosoma/coreforms.py
index 55fc56c..a177c67 100644
--- a/paramecio/cromosoma/coreforms.py
+++ b/paramecio/cromosoma/coreforms.py
@@ -72,7 +72,8 @@ class SelectForm(BaseForm):
for k,v in self.arr_select.items():
arr_selected[k]=arr_selected.get(k, '')
- the_form+=""
+
+ the_form+=""
the_form+='\n'
@@ -80,18 +81,18 @@ class SelectForm(BaseForm):
class SelectModelForm(SelectForm):
- def __init__(self, name, value):
+ def __init__(self, name, value, model, field_name, field_value):
super(SelectModelForm, self).__init__(name, value)
self.arr_select=OrderedDict()
- self.model=None
- self.field_name=''
- self.field_value='id'
+ self.model=model
+ self.field_name=field_name
+ self.field_value=field_value
def form(self):
self.arr_select['']=''
- cur=self.model.select([self.field_name, self.field_value])
+ cur=self.model.select([self.field_name, self.field_value], True)
for arr_value in cur:
diff --git a/paramecio/cromosoma/extrafields/imagefield.py b/paramecio/cromosoma/extrafields/imagefield.py
index fade161..dfb077a 100644
--- a/paramecio/cromosoma/extrafields/imagefield.py
+++ b/paramecio/cromosoma/extrafields/imagefield.py
@@ -79,7 +79,9 @@ class ImageField(CharField):
if self.yes_prefix==True:
prefix=uuid4().hex+'_'
- save_file=self.save_folder+'/'+prefix+filename
+ filename=prefix+filename
+
+ save_file=self.save_folder+'/'+filename
if self.yes_thumbnail:
@@ -90,16 +92,18 @@ class ImageField(CharField):
im_thumb=im.copy()
- height_t=150
+ ratio=(real_width/width_t)
+ height_t=round(real_height/ratio)
- size=(self.width_t, height_t)
+ size=(width_t, height_t)
+
+ save_file_thumb=self.save_folder+'/'+name+filename
im_thumb.thumbnail(size, self.default_quality_thumb)
- im_thumb.save(self.save_folder, "JPEG")
+ im_thumb.save(save_file_thumb, "JPEG")
im_thumb.close()
- pass
# Save file
try:
@@ -130,7 +134,7 @@ class ImageField(CharField):
im.save(save_file)
- # Delete old files if have a different name
+ # Delete old files
if self.model!=None:
@@ -142,7 +146,9 @@ class ImageField(CharField):
for arr_image in cur:
- os.remove(arr_image[self.name])
+ if arr_image[self.name]!=save_file:
+
+ os.remove(arr_image[self.name])
self.model.yes_reset_conditions=old_reset
diff --git a/paramecio/cromosoma/usermodel.py b/paramecio/cromosoma/usermodel.py
index e444b30..da5f536 100644
--- a/paramecio/cromosoma/usermodel.py
+++ b/paramecio/cromosoma/usermodel.py
@@ -146,4 +146,4 @@ class UserModel(WebModel):
-
\ No newline at end of file
+
diff --git a/paramecio/cromosoma/webmodel.py b/paramecio/cromosoma/webmodel.py
index 5f9c241..e372ce7 100644
--- a/paramecio/cromosoma/webmodel.py
+++ b/paramecio/cromosoma/webmodel.py
@@ -127,7 +127,7 @@ class WebModel:
self.fields[field_model.name].required=required
- self.files_delete[field_model.name]=field_model.file_related
+ #self.files_delete[field_model.name]=field_model.file_related
# A method for create the id field.
@@ -894,6 +894,10 @@ class PhangoField:
# File related: if the field have a file related, delete the file
self.file_related=False
+
+ # Extra parameters for the form
+
+ self.extra_parameters=[]
# This method is used for describe the new field in a sql language format.
@@ -929,12 +933,23 @@ class PhangoField:
pass
def create_form(self):
- form=self.name_form(self.name, self.default_value)
+ #self.name, self.default_value,
+
+ self.extra_parameters.insert(0, self.name)
+ self.extra_parameters.insert(1, self.default_value)
+ form=self.name_form(*self.extra_parameters)
form.default_value=self.default_value
form.required=self.required
form.label=self.label
form.field=self
return form
+
+ def change_form(self, new_form, parameters):
+
+ self.name_form=new_form
+
+ self.extra_parameters=parameters
+
class PrimaryKeyField(PhangoField):
diff --git a/paramecio/modules/admin/models/admin.py b/paramecio/modules/admin/models/admin.py
index f6f008a..e5c41b2 100644
--- a/paramecio/modules/admin/models/admin.py
+++ b/paramecio/modules/admin/models/admin.py
@@ -66,4 +66,4 @@ user_admin.register(corefields.BooleanField('privileges'))
#user_admin.register(corefields.CharField('prueba'))
-"""
\ No newline at end of file
+"""
diff --git a/tests/imagefieldtest.py b/tests/imagefieldtest.py
index f6b2ae7..5fd5a85 100644
--- a/tests/imagefieldtest.py
+++ b/tests/imagefieldtest.py
@@ -17,6 +17,8 @@ class TestFieldMethods(unittest.TestCase):
field=ImageField('image', 'tests/images/uploads', module=None, size=255, required=False)
+ field.yes_thumbnail=True
+
field.check('')
print(field.txt_error)