-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutils.py
74 lines (58 loc) · 1.8 KB
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import logging
from django.core.exceptions import ValidationError
from PIL import Image
from django.core.paginator import Paginator
import json
import requests
logger = logging.getLogger('method')
def start_method_log(name, **kwargs):
log = '({}) method started!'.format(name)
if len(kwargs) != 0:
log += '('
for key in kwargs:
log += ' {}: {}'.format(key, kwargs[key])
if len(kwargs) != 0:
log += ')'
logger.info(log)
def get_client_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
return ip
def validate_image(uploadedfile):
filesize = uploadedfile.size
megabyte_limit = 3.0
if filesize > megabyte_limit*1024*1024:
raise ValidationError("Max file size is %sMB" %
str(megabyte_limit))
im = Image.open(uploadedfile)
width, height = im.size
if width > 1080 or height > 1080:
raise ValidationError("Maximum file resolution is 1080.")
def paginator(queryset, limit=10, page=1):
if page is None:
page = 1
pages = Paginator(queryset, limit)
total_page = pages.num_pages
result = pages.get_page(page)
count = pages.count
if result.has_next():
next_page_number = result.next_page_number()
else:
next_page_number = None
if result.has_previous():
previous_page_number = result.previous_page_number()
else:
previous_page_number = None
data = {
"count": count,
"total_page": total_page,
"next_page_number": next_page_number,
"previous_page_number": previous_page_number,
"result": result
}
return data
def send_email(to, subject, body):
pass