#25 Public reports
* adds public report rendering for intervention model * adds new routes for report * adds new public_base.html and public_navbar.html * adds lookup table for zoom levels for lanis link generating * moves qr code generating into utils/generators.py
This commit is contained in:
@@ -69,3 +69,14 @@ ETS_GROUP = "Conservation office"
|
||||
# Needed to redirect to LANIS
|
||||
## Values to be inserted are [zoom_level, x_coord, y_coord]
|
||||
LANIS_LINK_TEMPLATE = "https://geodaten.naturschutz.rlp.de/kartendienste_naturschutz/index.php?lang=de&zl={}&x={}&y={}&bl=tk_rlp_tms_grau&bo=1&lo=0.8,0.8,0.8,0.6,0.8,0.8,0.8,0.8,0.8&layers=eiv_f,eiv_l,eiv_p,kom_f,kom_l,kom_p,oek_f,ema_f,mae&service=kartendienste_naturschutz"
|
||||
## This look up table (LUT) defines different zoom levels on the size of the calculate area of a geometry.
|
||||
LANIS_ZOOM_LUT = {
|
||||
1000000000: 6,
|
||||
100000000: 10,
|
||||
10000000: 17,
|
||||
1000000: 20,
|
||||
100000: 25,
|
||||
10000: 28,
|
||||
1000: 30,
|
||||
500: 31,
|
||||
}
|
||||
|
||||
@@ -7,6 +7,10 @@ Created on: 09.11.20
|
||||
"""
|
||||
import random
|
||||
import string
|
||||
import qrcode
|
||||
import qrcode.image.svg
|
||||
|
||||
from io import BytesIO
|
||||
|
||||
|
||||
def generate_random_string(length: int, use_numbers: bool = False, use_letters_lc: bool = False, use_letters_uc: bool = False) -> str:
|
||||
@@ -24,3 +28,24 @@ def generate_random_string(length: int, use_numbers: bool = False, use_letters_l
|
||||
elements = "".join(elements)
|
||||
ret_val = "".join(random.choice(elements) for i in range(length))
|
||||
return ret_val
|
||||
|
||||
|
||||
def generate_qr_code(content: str, size: int = 20) -> str:
|
||||
""" Generates a qr code from given content
|
||||
|
||||
Args:
|
||||
content (str): The content for the qr code
|
||||
size (int): The image size
|
||||
|
||||
Returns:
|
||||
qrcode_svg (str): The qr code as svg
|
||||
"""
|
||||
qrcode_factory = qrcode.image.svg.SvgImage
|
||||
qrcode_img = qrcode.make(
|
||||
content,
|
||||
image_factory=qrcode_factory,
|
||||
box_size=size
|
||||
)
|
||||
stream = BytesIO()
|
||||
qrcode_img.save(stream)
|
||||
return stream.getvalue().decode()
|
||||
|
||||
Reference in New Issue
Block a user