Compare commits
No commits in common. "b0be7b5887a875726e188fbfc9b852a377cf79c2" and "a879360ebd281514867bf3f10c6e322cdedd0730" have entirely different histories.
b0be7b5887
...
a879360ebd
|
@ -30,7 +30,7 @@
|
||||||
* added a new sort_name field that gets automatically created
|
* added a new sort_name field that gets automatically created
|
||||||
* automatically fill certain values in forms:
|
* automatically fill certain values in forms:
|
||||||
* new game: name and sort name after typing
|
* new game: name and sort name after typing
|
||||||
* new edition: name, sort name, and year when selecting game
|
* new edition: name and sort name when selecting game
|
||||||
* new purchase: platform when selecting edition
|
* new purchase: platform when selecting edition
|
||||||
|
|
||||||
## 1.3.0 / 2023-11-05 15:09+01:00
|
## 1.3.0 / 2023-11-05 15:09+01:00
|
||||||
|
|
|
@ -80,7 +80,6 @@ class IncludeNameSelect(forms.Select):
|
||||||
option = super().create_option(name, value, *args, **kwargs)
|
option = super().create_option(name, value, *args, **kwargs)
|
||||||
if value:
|
if value:
|
||||||
option["attrs"]["data-name"] = value.instance.name
|
option["attrs"]["data-name"] = value.instance.name
|
||||||
option["attrs"]["data-year"] = value.instance.year_released
|
|
||||||
return option
|
return option
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,17 +18,20 @@ class Game(models.Model):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
|
# Logic to create sort_name from name
|
||||||
def get_sort_name(name):
|
def get_sort_name(name):
|
||||||
articles = ["a", "an", "the"]
|
articles = ["a", "an", "the"]
|
||||||
name_parts = name.split()
|
name_parts = name.split()
|
||||||
first_word = name_parts[0].lower()
|
first_word = name_parts[0].lower()
|
||||||
if first_word in articles:
|
if first_word in articles:
|
||||||
return f"{' '.join(name_parts[1:])}, {name_parts[0]}"
|
# Move the first word to the end
|
||||||
|
name_parts.append(name_parts.pop(0))
|
||||||
|
return ", ".join(name_parts).capitalize()
|
||||||
else:
|
else:
|
||||||
return name
|
return name.capitalize()
|
||||||
|
|
||||||
self.sort_name = get_sort_name(self.name)
|
self.sort_name = get_sort_name(self.name)
|
||||||
super().save(*args, **kwargs)
|
super().save(*args, **kwargs) # Call the "real" save() method.
|
||||||
|
|
||||||
|
|
||||||
class Edition(models.Model):
|
class Edition(models.Model):
|
||||||
|
@ -48,17 +51,20 @@ class Edition(models.Model):
|
||||||
return self.sort_name
|
return self.sort_name
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
|
# Logic to create sort_name from name
|
||||||
def get_sort_name(name):
|
def get_sort_name(name):
|
||||||
articles = ["a", "an", "the"]
|
articles = ["a", "an", "the"]
|
||||||
name_parts = name.split()
|
name_parts = name.split()
|
||||||
first_word = name_parts[0].lower()
|
first_word = name_parts[0].lower()
|
||||||
if first_word in articles:
|
if first_word in articles:
|
||||||
return f"{' '.join(name_parts[1:])}, {name_parts[0]}"
|
# Move the first word to the end
|
||||||
|
name_parts.append(name_parts.pop(0))
|
||||||
|
return ", ".join(name_parts).capitalize()
|
||||||
else:
|
else:
|
||||||
return name
|
return name.capitalize()
|
||||||
|
|
||||||
self.sort_name = get_sort_name(self.name)
|
self.sort_name = get_sort_name(self.name)
|
||||||
super().save(*args, **kwargs)
|
super().save(*args, **kwargs) # Call the "real" save() method.
|
||||||
|
|
||||||
|
|
||||||
class PurchaseQueryset(models.QuerySet):
|
class PurchaseQueryset(models.QuerySet):
|
||||||
|
|
|
@ -13,12 +13,6 @@ let syncData = [
|
||||||
"target": "#id_sort_name",
|
"target": "#id_sort_name",
|
||||||
"target_value": "value"
|
"target_value": "value"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"source": "#id_game",
|
|
||||||
"source_value": "dataset.year",
|
|
||||||
"target": "#id_year_released",
|
|
||||||
"target_value": "value"
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
syncSelectInputUntilChanged(syncData, "form");
|
syncSelectInputUntilChanged(syncData, "form");
|
||||||
|
|
Loading…
Reference in New Issue