Browse Source

transmitters filters added + generation field added

master
Mohsen Taba 5 months ago
parent
commit
e2dbda6cb2
  1. 30
      apps/hadis/migrations/0036_transmitters_generation_and_more.py
  2. 2
      apps/hadis/models/transmitter.py
  3. 5
      apps/hadis/serializers/hadis.py
  4. 14
      apps/hadis/views/transmitter.py

30
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",
),
),
]

2
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,

5
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'
]

14
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

Loading…
Cancel
Save