Fixes in sessions and imagefield

This commit is contained in:
Antonio de la Rosa 2017-03-30 03:26:10 +02:00
parent af77628bcd
commit 073e89abf8
3 changed files with 68 additions and 32 deletions

View file

@ -191,7 +191,9 @@ else:
else:
s={'token': token}
else:
s={'token': token}
# Need regenerate session
s=generate_session()
return s

View file

@ -18,7 +18,7 @@ from uuid import uuid4
class ImageField(CharField):
def __init__(self, name, save_folder='media/upload/images', maximum_size=None, module=None, size=255, required=False):
def __init__(self, name, save_folder='media/upload/images', sizes=None, module=None, size=255, required=False):
super().__init__(name, size, required)
@ -40,6 +40,8 @@ class ImageField(CharField):
self.file_related=True
self.sizes=sizes
def change_folder(self, folder):
pass
@ -56,22 +58,26 @@ class ImageField(CharField):
if value=='':
old_reset=self.model.yes_reset_conditions
if self.model:
self.model.yes_reset_conditions=False
if self.model.updated:
with self.model.select([self.name]) as cur:
old_reset=self.model.yes_reset_conditions
for arr_image in cur:
self.model.yes_reset_conditions=False
if arr_image[self.name]!='':
os.remove(arr_image[self.name])
with self.model.select([self.name]) as cur:
#if arr_image[self.name]!=save_file and arr_image[self.name]!='':
for arr_image in cur:
#value=arr_image[self.name]
if arr_image[self.name]!='':
os.remove(arr_image[self.name])
self.model.yes_reset_conditions=old_reset
#if arr_image[self.name]!=save_file and arr_image[self.name]!='':
#value=arr_image[self.name]
self.model.yes_reset_conditions=old_reset
return ''
@ -99,6 +105,25 @@ class ImageField(CharField):
self.txt_error='Error, file not exists'
return ""
real_width=im.size[0]
real_height=im.size[1]
if self.sizes:
if 'maximum' in self.sizes:
if self.sizes.size['maximum'][0]<real_width or self.sizes.size['maximum'][1]<real_height:
self.error=True
self.txt_error='Size is wrong. Maximum size is '+str(self.sizes.size['maximum'][0])+'x'+str(self.sizes.size['maximum'][1])
im.close()
return ""
if 'minimum' in self.sizes:
if self.sizes.size['minimum'][0]<real_width or self.sizes.size['minimum'][1]<real_height:
self.error=True
self.txt_error='Size is wrong. Minimum size is '+str(real_width)+'x'+str(real_height)
im.close()
return ""
format_image=im.format
if format_image!='JPEG' and format_image!='GIF' and format_image!='PNG':
@ -123,9 +148,6 @@ class ImageField(CharField):
if self.yes_thumbnail:
real_width=im.size[0]
real_height=im.size[1]
for name, width_t in self.thumbnail.items():
im_thumb=im.copy()
@ -177,21 +199,23 @@ class ImageField(CharField):
if self.model!=None:
#old_conditions=self.model.conditions
if self.model.updated:
old_reset=self.model.yes_reset_conditions
#old_conditions=self.model.conditions
self.model.yes_reset_conditions=False
old_reset=self.model.yes_reset_conditions
with self.model.select([self.name]) as cur:
self.model.yes_reset_conditions=False
for arr_image in cur:
with self.model.select([self.name]) as cur:
if arr_image[self.name]!=save_file and arr_image[self.name]!='':
for arr_image in cur:
os.remove(arr_image[self.name])
if arr_image[self.name]!=save_file and arr_image[self.name]!='':
self.model.yes_reset_conditions=old_reset
os.remove(arr_image[self.name])
self.model.yes_reset_conditions=old_reset
#self.model.conditions=old_conditions

View file

@ -791,6 +791,16 @@ class WebModel:
return self
@staticmethod
def check_in_list(in_list):
for x in range(0, len(in_list)):
try:
in_list[x]=str(int(in_list[x]))
except:
in_list[x]=str(0)
return '('+', '.join(in_list)+')'
def set_order(self, order:dict) -> object:
arr_order=[]