Many fixes and featured added
This commit is contained in:
parent
5f7e9cce26
commit
b678823a0e
8 changed files with 47 additions and 21 deletions
|
|
@ -71,7 +71,7 @@ class GenerateAdminClass:
|
||||||
title_edit=I18n.lang('common', 'add_new_item', 'Add new item')
|
title_edit=I18n.lang('common', 'add_new_item', 'Add new item')
|
||||||
|
|
||||||
if GetPostFiles.get['id']!='0':
|
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')
|
title_edit=I18n.lang('common', 'edit_new_item', 'Edit item')
|
||||||
|
|
||||||
if post==None:
|
if post==None:
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,8 @@ class ForeignKeyField(IntegerField):
|
||||||
|
|
||||||
def __init__(self, name, related_table, size=11, required=False, identifier_field='id', named_field="id", select_fields=[]):
|
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_id=related_table.name_field_id
|
||||||
|
|
||||||
self.table_name=related_table.name
|
self.table_name=related_table.name
|
||||||
|
|
@ -96,10 +98,10 @@ class ForeignKeyField(IntegerField):
|
||||||
|
|
||||||
self.select_fields=select_fields
|
self.select_fields=select_fields
|
||||||
|
|
||||||
super(ForeignKeyField, self).__init__(name, size, required)
|
|
||||||
|
|
||||||
self.foreignkey=True
|
self.foreignkey=True
|
||||||
|
|
||||||
|
self.change_form(coreforms.SelectModelForm, [related_table, self.named_field, self.identifier_field])
|
||||||
|
|
||||||
def get_type_sql(self):
|
def get_type_sql(self):
|
||||||
|
|
||||||
return 'INT NULL'
|
return 'INT NULL'
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,8 @@ class SelectForm(BaseForm):
|
||||||
|
|
||||||
for k,v in self.arr_select.items():
|
for k,v in self.arr_select.items():
|
||||||
arr_selected[k]=arr_selected.get(k, '')
|
arr_selected[k]=arr_selected.get(k, '')
|
||||||
the_form+="<option value=\""+self.setform(str(k))+"\" "+arr_selected[k]+">"+v+"</option>"
|
|
||||||
|
the_form+="<option value=\""+self.setform(str(k))+"\" "+arr_selected[k]+">"+self.setform(str(v))+"</option>"
|
||||||
|
|
||||||
the_form+='</select>\n'
|
the_form+='</select>\n'
|
||||||
|
|
||||||
|
|
@ -80,18 +81,18 @@ class SelectForm(BaseForm):
|
||||||
|
|
||||||
class SelectModelForm(SelectForm):
|
class SelectModelForm(SelectForm):
|
||||||
|
|
||||||
def __init__(self, name, value):
|
def __init__(self, name, value, model, field_name, field_value):
|
||||||
super(SelectModelForm, self).__init__(name, value)
|
super(SelectModelForm, self).__init__(name, value)
|
||||||
self.arr_select=OrderedDict()
|
self.arr_select=OrderedDict()
|
||||||
self.model=None
|
self.model=model
|
||||||
self.field_name=''
|
self.field_name=field_name
|
||||||
self.field_value='id'
|
self.field_value=field_value
|
||||||
|
|
||||||
def form(self):
|
def form(self):
|
||||||
|
|
||||||
self.arr_select['']=''
|
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:
|
for arr_value in cur:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,9 @@ class ImageField(CharField):
|
||||||
if self.yes_prefix==True:
|
if self.yes_prefix==True:
|
||||||
prefix=uuid4().hex+'_'
|
prefix=uuid4().hex+'_'
|
||||||
|
|
||||||
save_file=self.save_folder+'/'+prefix+filename
|
filename=prefix+filename
|
||||||
|
|
||||||
|
save_file=self.save_folder+'/'+filename
|
||||||
|
|
||||||
if self.yes_thumbnail:
|
if self.yes_thumbnail:
|
||||||
|
|
||||||
|
|
@ -90,16 +92,18 @@ class ImageField(CharField):
|
||||||
|
|
||||||
im_thumb=im.copy()
|
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.thumbnail(size, self.default_quality_thumb)
|
||||||
im_thumb.save(self.save_folder, "JPEG")
|
im_thumb.save(save_file_thumb, "JPEG")
|
||||||
|
|
||||||
im_thumb.close()
|
im_thumb.close()
|
||||||
|
|
||||||
pass
|
|
||||||
# Save file
|
# Save file
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
@ -130,7 +134,7 @@ class ImageField(CharField):
|
||||||
|
|
||||||
im.save(save_file)
|
im.save(save_file)
|
||||||
|
|
||||||
# Delete old files if have a different name
|
# Delete old files
|
||||||
|
|
||||||
if self.model!=None:
|
if self.model!=None:
|
||||||
|
|
||||||
|
|
@ -142,6 +146,8 @@ class ImageField(CharField):
|
||||||
|
|
||||||
for arr_image in cur:
|
for arr_image in cur:
|
||||||
|
|
||||||
|
if arr_image[self.name]!=save_file:
|
||||||
|
|
||||||
os.remove(arr_image[self.name])
|
os.remove(arr_image[self.name])
|
||||||
|
|
||||||
self.model.yes_reset_conditions=old_reset
|
self.model.yes_reset_conditions=old_reset
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ class WebModel:
|
||||||
|
|
||||||
self.fields[field_model.name].required=required
|
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.
|
# A method for create the id field.
|
||||||
|
|
||||||
|
|
@ -895,6 +895,10 @@ class PhangoField:
|
||||||
|
|
||||||
self.file_related=False
|
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.
|
# This method is used for describe the new field in a sql language format.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -929,13 +933,24 @@ class PhangoField:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def create_form(self):
|
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.default_value=self.default_value
|
||||||
form.required=self.required
|
form.required=self.required
|
||||||
form.label=self.label
|
form.label=self.label
|
||||||
form.field=self
|
form.field=self
|
||||||
return form
|
return form
|
||||||
|
|
||||||
|
def change_form(self, new_form, parameters):
|
||||||
|
|
||||||
|
self.name_form=new_form
|
||||||
|
|
||||||
|
self.extra_parameters=parameters
|
||||||
|
|
||||||
|
|
||||||
class PrimaryKeyField(PhangoField):
|
class PrimaryKeyField(PhangoField):
|
||||||
|
|
||||||
def __init__(self, name, size=11, required=False):
|
def __init__(self, name, size=11, required=False):
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,8 @@ class TestFieldMethods(unittest.TestCase):
|
||||||
|
|
||||||
field=ImageField('image', 'tests/images/uploads', module=None, size=255, required=False)
|
field=ImageField('image', 'tests/images/uploads', module=None, size=255, required=False)
|
||||||
|
|
||||||
|
field.yes_thumbnail=True
|
||||||
|
|
||||||
field.check('')
|
field.check('')
|
||||||
|
|
||||||
print(field.txt_error)
|
print(field.txt_error)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue