feat: implement HTMX support, DRF filters, and professionalized documentation

- Implement server-side location chaining with HTMX support via `htmx=True` in fields and widgets.
- Update location views to handle HTMX requests and return HTML <option> fragments.
- Add NepaliDateYearFilter and NepaliDateRangeFilter for robust DRF API filtering.
- Expand default `DATE_INPUT_FORMATS` in configuration to support multiple common Nepali date styles.
- Update DRF serializers to automatically respect global `NEPKIT` configuration settings.
- Add `django-filter` as an optional dependency under the `drf` extra in pyproject.toml.
- Correct underlying dependency references from `nepali-datetime` to nepali library.
- Complete overhaul of README.md for premium DX, including new sections for storage behavior, timezone awareness, and API usage.
This commit is contained in:
sankalp committed 2026-01-30 15:22:13 +05:45
1 parent 7b07835e0c
commit 09f302ceaa
18 files changed
+2644 -164

No files matched your search

+13 -13
View File
@@ -12,22 +12,22 @@ from django_nepkit import (
class Person(models.Model):
name = models.CharField(max_length=100)
# Date/time fields - examples with and without Devanagari
birth_date = NepaliDateField(ne=True) # Devanagari
birth_date_en = NepaliDateField(blank=True, null=True) # English (default)
registration_time = NepaliTimeField(auto_now_add=True, ne=True) # Devanagari
# Date/time fields - now default to English via NEPKIT['DEFAULT_LANGUAGE']
birth_date = NepaliDateField() # Defaults to en=True
birth_date_ne = NepaliDateField(ne=True, blank=True, null=True) # Explicitly Nepali
registration_time = NepaliTimeField(auto_now_add=True) # Defaults to en=True
phone_number = NepaliPhoneNumberField()
# Address chaining - examples with and without Devanagari
province = ProvinceField(ne=True) # Devanagari
province_en = ProvinceField(blank=True, null=True) # English (default)
district = DistrictField(ne=True) # Devanagari
district_en = DistrictField(blank=True, null=True) # English (default)
municipality = MunicipalityField(ne=True) # Devanagari
municipality_en = MunicipalityField(blank=True, null=True) # English (default)
# Address chaining - now default to English via NEPKIT['DEFAULT_LANGUAGE']
province = ProvinceField() # Defaults to en=True
province_ne = ProvinceField(ne=True, blank=True, null=True) # Explicitly Nepali
district = DistrictField() # Defaults to en=True
district_ne = DistrictField(ne=True, blank=True, null=True) # Explicitly Nepali
municipality = MunicipalityField() # Defaults to en=True
municipality_ne = MunicipalityField(ne=True, blank=True, null=True) # Explicitly Nepali
created_at = NepaliDateTimeField(auto_now_add=True, ne=True) # Devanagari
updated_at = NepaliDateTimeField(auto_now=True, ne=True) # Devanagari
created_at = NepaliDateTimeField(auto_now_add=True) # Defaults to en=True
updated_at = NepaliDateTimeField(auto_now=True) # Defaults to en=True
def __str__(self):
return self.name