Skip to content

Commit ef58a98

Browse files
committed
change copy program mutation to generate new slug
1 parent 1e715e6 commit ef58a98

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

src/hct_mis_api/apps/program/models.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -240,18 +240,18 @@ def clean(self) -> None:
240240
def save(self, *args: Any, **kwargs: Any) -> None:
241241
self.clean()
242242
if not self.programme_code:
243-
self.programme_code = self._generate_programme_code()
243+
self.programme_code = self.generate_programme_code()
244244
if not self.slug:
245245
self.slug = self.generate_slug()
246246
if self.data_collecting_type_id is None and self.data_collecting_type:
247247
# save the related object before saving Program
248248
self.data_collecting_type.save()
249249
super().save(*args, **kwargs)
250250

251-
def _generate_programme_code(self) -> str:
251+
def generate_programme_code(self) -> str:
252252
programme_code = "".join(random.choice(string.ascii_uppercase + string.digits + "-") for _ in range(4))
253253
if Program.objects.filter(business_area_id=self.business_area_id, programme_code=programme_code).exists():
254-
return self._generate_programme_code()
254+
return self.generate_programme_code()
255255
return programme_code
256256

257257
def generate_slug(self) -> str:

src/hct_mis_api/apps/program/utils.py

+4
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ def copy_program_object(copy_from_program_id: str, program_data: dict, user: Use
5353
for field_name, value in program_data.items():
5454
setattr(program, field_name, value)
5555

56+
if not program.programme_code:
57+
program.programme_code = program.generate_programme_code()
58+
program.slug = program.generate_slug()
59+
5660
program.full_clean()
5761
program.save()
5862
program.admin_areas.set(admin_areas)

0 commit comments

Comments
 (0)