Skip to content

Commit 1c03ae3

Browse files
authored
fix : 0.23.3 restore scroll on left pannel
2 parents b679ba1 + d2e673f commit 1c03ae3

File tree

8 files changed

+244
-158
lines changed

8 files changed

+244
-158
lines changed

back/api/management/commands/generate_mvt.py

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from typing import Tuple, Type
99

1010
from django.core.management import BaseCommand
11-
from django.db.models import QuerySet, Model
11+
from django.db.models import Model
1212

1313
from api.constants import DEFAULT_ZOOM_LEVELS, GeoLevel, DataType
1414
from api.utils.mvt_generator import MVTGenerator
@@ -20,10 +20,16 @@ class Command(BaseCommand):
2020

2121
def add_arguments(self, parser):
2222
parser.add_argument(
23-
"--number_of_thread",
23+
"--number_of_workers",
2424
type=int,
2525
default=1,
26-
help="Number of threads to use for generating tiles",
26+
help="Number of workers to use for generating tiles",
27+
)
28+
parser.add_argument(
29+
"--number_of_threads_by_worker",
30+
type=int,
31+
default=1,
32+
help="Number of threads by worker to use for generating tiles",
2733
)
2834
parser.add_argument(
2935
"--geolevel",
@@ -54,41 +60,40 @@ def add_arguments(self, parser):
5460
def generate_tiles_for_model(
5561
self,
5662
model: Type[Model],
57-
queryset: QuerySet,
5863
zoom_levels: Tuple[int, int] = DEFAULT_ZOOM_LEVELS,
59-
number_of_thread: int = 1,
64+
number_of_threads_by_worker: int = 1,
65+
number_of_workers: int = 1,
6066
) -> None:
6167
"""
6268
Generate MVT tiles for a geographic model.
6369
6470
This method generates MVT (Mapbox Vector Tiles) for a specified geographic model
65-
based on the provided queryset and zoom levels. It utilizes multiple threads
71+
based on the provided model and zoom levels. It utilizes multiple threads
6672
to enhance performance.
6773
6874
Args:
6975
model (Type[Model]): The model class to generate MVT tiles for.
70-
queryset (QuerySet): The queryset of the model instances to process.
7176
zoom_levels (Tuple[int, int]): A tuple specifying the range of zoom levels
7277
to generate tiles for (inclusive).
73-
number_of_thread (int): The number of threads to use for generating tiles.
78+
number_of_workers (int): The number of workers to use for generating tiles.
7479
7580
Returns:
7681
None
7782
"""
7883
mvt_generator = MVTGenerator(
79-
queryset=queryset,
84+
mdl=model,
8085
zoom_levels=zoom_levels,
81-
datatype=model.datatype,
82-
geolevel=model.geolevel,
83-
number_of_thread=number_of_thread,
86+
number_of_workers=number_of_workers,
87+
number_of_threads_by_worker=number_of_threads_by_worker,
8488
)
8589

8690
mvt_generator.generate_tiles()
8791
self.stdout.write(self.style.SUCCESS("MVT tiles generated successfully!"))
8892

8993
def handle(self, *args, **options):
9094
"""Handle the command."""
91-
number_of_thread = options["number_of_thread"]
95+
number_of_workers = options["number_of_workers"]
96+
number_of_threads_by_worker = options["number_of_threads_by_worker"]
9297
geolevel = options["geolevel"]
9398
datatype = options["datatype"]
9499
zoom_levels = options["zoom_levels"]
@@ -118,13 +123,16 @@ def handle(self, *args, **options):
118123
print(f"Deleting existing MVTTile for model : {mdl._meta.model_name}.")
119124
print(
120125
MVTTile.objects.filter(
121-
geolevel=geolevel, datatype=mdl.datatype
126+
geolevel=mdl.geolevel,
127+
datatype=mdl.datatype,
128+
zoom_level__gte=zoom_levels[0],
129+
zoom_level__lte=zoom_levels[1],
122130
).delete()
123131
)
124132
# Generate new tiles
125133
self.generate_tiles_for_model(
126134
model=mdl,
127-
queryset=mdl.objects.all(),
128135
zoom_levels=zoom_levels,
129-
number_of_thread=number_of_thread,
136+
number_of_workers=number_of_workers,
137+
number_of_threads_by_worker=number_of_threads_by_worker,
130138
)

back/api/tests/test_generate_mvt.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ def test_handle_tile_geolevel_selects_correct_model(self):
2222
options = {
2323
"geolevel": GeoLevel.TILE.value,
2424
"datatype": DataType.TILE.value,
25-
"number_of_thread": 1,
25+
"number_of_workers": 1,
26+
"number_of_threads_by_worker": 1,
2627
"keep": False,
2728
"zoom_levels": (13, 13),
2829
}
@@ -55,7 +56,8 @@ def test_handle_deletes_existing_tiles_when_keep_false(self):
5556
options = {
5657
"geolevel": GeoLevel.TILE.value,
5758
"datatype": DataType.TILE.value,
58-
"number_of_thread": 1,
59+
"number_of_workers": 1,
60+
"number_of_threads_by_worker": 1,
5961
"keep": False,
6062
"zoom_levels": (13, 13),
6163
}
@@ -84,7 +86,8 @@ def test_handle_keeps_existing_tiles_when_keep_true(self):
8486
options = {
8587
"geolevel": GeoLevel.TILE.value,
8688
"datatype": DataType.TILE.value,
87-
"number_of_thread": 1,
89+
"number_of_workers": 1,
90+
"number_of_threads_by_worker": 1,
8891
"keep": True,
8992
"zoom_levels": (13, 13),
9093
}

0 commit comments

Comments
 (0)