diff --git a/apps/hadis/migrations/0036_transmitters_generation_and_more.py b/apps/hadis/migrations/0036_transmitters_generation_and_more.py new file mode 100644 index 0000000..0d3d15b --- /dev/null +++ b/apps/hadis/migrations/0036_transmitters_generation_and_more.py @@ -0,0 +1,30 @@ +# Generated by Django 5.2.9 on 2025-12-14 14:53 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("hadis", "0035_transmitteroriginaltext"), + ] + + operations = [ + migrations.AddField( + model_name="transmitters", + name="generation", + field=models.PositiveIntegerField( + blank=True, null=True, verbose_name="Generation" + ), + ), + migrations.AlterField( + model_name="transmitteroriginaltext", + name="transmitter", + field=models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="originaltexts", + to="hadis.transmitters", + verbose_name="transmitter", + ), + ), + ] diff --git a/apps/hadis/models/transmitter.py b/apps/hadis/models/transmitter.py index 45bf388..25e0b21 100644 --- a/apps/hadis/models/transmitter.py +++ b/apps/hadis/models/transmitter.py @@ -61,7 +61,7 @@ class Transmitters(models.Model): birth_year_hijri = models.IntegerField(verbose_name=_("Birth Year (Hijri)"), null=True, blank=True) death_year_hijri = models.IntegerField(verbose_name=_("Death Year (Hijri)"), null=True, blank=True) age_at_death = models.PositiveIntegerField(verbose_name=_('Age at Death'), blank=True, null=True) - + generation = models.PositiveIntegerField(verbose_name=_('Generation'), blank=True, null=True) # Religious & Academic Information reliability = models.CharField( max_length=20, diff --git a/apps/hadis/serializers/hadis.py b/apps/hadis/serializers/hadis.py index 08338c4..53e0421 100644 --- a/apps/hadis/serializers/hadis.py +++ b/apps/hadis/serializers/hadis.py @@ -193,7 +193,7 @@ class TransmitterSerializer(serializers.ModelSerializer): model = Transmitters fields = [ 'id', 'full_name', 'birth_year_hijri', 'death_year_hijri', - "known_as",'nickname','reliability','madhhab', + "known_as",'nickname','reliability','madhhab','generation' ] class TransmitterOpinionSerializer(serializers.ModelSerializer): """ Serializer for TransmitterOpinions """ @@ -224,7 +224,8 @@ class TransmitterDetailSerializer(serializers.ModelSerializer): 'id','full_name','kunya','known_as','nickname', 'origin','lived_in','died_in','birth_year_hijri', 'death_year_hijri','age_at_death','reliability', - 'madhhab',"in_sahih_muslim","in_sahih_bukhari","description", + 'madhhab',"in_sahih_muslim","in_sahih_bukhari", + "description",'generation' ] diff --git a/apps/hadis/views/transmitter.py b/apps/hadis/views/transmitter.py index 1c2714a..54a6127 100644 --- a/apps/hadis/views/transmitter.py +++ b/apps/hadis/views/transmitter.py @@ -30,16 +30,10 @@ class TransmitterView(ListAPIView): queryset = queryset.filter(madhhab=madhhab_filter) # Filter by generation (narrator layer) - # generation_filter = self.request.query_params.get('generation', None) - # if generation_filter: - # try: - # generation_num = int(generation_filter) - # # Filter transmitters who have hadis transmissions in the specified generation/layer - # queryset = queryset.filter( - # hadi=generation_num - # ).distinct() - # except (ValueError, TypeError): - # pass # Invalid generation number, ignore filter + generation_filter = self.request.query_params.get('generation', None) + if generation_filter: + queryset = queryset.filter(generation=generation_filter) + return queryset