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')
|
||||
|
||||
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:
|
||||
|
|
|
|||
|
|
@ -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=[]):
|
||||
|
||||
super(ForeignKeyField, self).__init__(name, size, required)
|
||||
|
||||
self.table_id=related_table.name_field_id
|
||||
|
||||
self.table_name=related_table.name
|
||||
|
|
@ -96,10 +98,10 @@ class ForeignKeyField(IntegerField):
|
|||
|
||||
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):
|
||||
|
||||
return 'INT NULL'
|
||||
|
|
|
|||
|
|
@ -72,7 +72,8 @@ class SelectForm(BaseForm):
|
|||
|
||||
for k,v in self.arr_select.items():
|
||||
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'
|
||||
|
||||
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@ -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,6 +146,8 @@ class ImageField(CharField):
|
|||
|
||||
for arr_image in cur:
|
||||
|
||||
if arr_image[self.name]!=save_file:
|
||||
|
||||
os.remove(arr_image[self.name])
|
||||
|
||||
self.model.yes_reset_conditions=old_reset
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
@ -895,6 +895,10 @@ class PhangoField:
|
|||
|
||||
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,13 +933,24 @@ 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):
|
||||
|
||||
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.yes_thumbnail=True
|
||||
|
||||
field.check('')
|
||||
|
||||
print(field.txt_error)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue