diff --git a/dynamic_preferences/dynamic_preferences_registry.py b/dynamic_preferences/dynamic_preferences_registry.py index 4ab5f10..11617fc 100644 --- a/dynamic_preferences/dynamic_preferences_registry.py +++ b/dynamic_preferences/dynamic_preferences_registry.py @@ -193,3 +193,36 @@ class CalendarAdjustmentConfig(EditorTextPreferences): required = False verbose_name = 'Calendar Adjustment Config' default = '' + + + +about_us_dobodi = { + "type": "object", + "format": "table", + "title": "", + "required_by_default": 1, + "required": ['arabic_text', 'translated_text', 'title', 'content'], + "properties": { + "arabic_text": {"type": "string", "title": "text arabic"}, + "translated_text": {"type": "string", "title": "translated text"}, + "title": {"type": "string", "title": "title"}, + "content": {"type": "string", "format": "textarea", "title": "Content", "rows": 8}, + } +} + + + +class JsonFieldAbout(BasePreferenceType): + field_class = forms.JSONField + serializer = JsonSerializer + widget = JsonEditorWidget(attrs={'schema': about_us_dobodi}) + +@global_preferences_registry.register +class SupportConfig(JsonFieldAbout): + section = Section('about_us_dobodi', verbose_name='about Us Detail') + name = 'about_us_dobodi' + required = False + verbose_name = 'About Us Dobodi' + default = {} + + diff --git a/dynamic_preferences/serializers.py b/dynamic_preferences/serializers.py index bf57339..5132b56 100644 --- a/dynamic_preferences/serializers.py +++ b/dynamic_preferences/serializers.py @@ -31,6 +31,13 @@ from rest_framework import serializers class AboutUsSerializer(serializers.Serializer): content = serializers.CharField(allow_blank=True) +class AboutUsDobodiSerializer(serializers.Serializer): + arabic_text = serializers.CharField(allow_blank=True) + translated_text = serializers.CharField(allow_blank=True) + title = serializers.CharField(allow_blank=True) + content = serializers.CharField(allow_blank=True) + + class FAQItemSerializer(serializers.Serializer): question = serializers.CharField() answer = serializers.CharField() diff --git a/dynamic_preferences/urls.py b/dynamic_preferences/urls.py index dab3388..d95162d 100644 --- a/dynamic_preferences/urls.py +++ b/dynamic_preferences/urls.py @@ -14,7 +14,8 @@ from .views import ( FAQCourseAPIView, FAQGeneralAPIView, SupportAPIView, - CardAPIView + CardAPIView, + AboutUsDobodiAPIView ) app_name = "dynamic_preferences" @@ -29,6 +30,7 @@ urlpatterns = [ path('faq-general/', FAQGeneralAPIView.as_view(), name='faq-general-api'), path('support/', SupportAPIView.as_view(), name='support-api'), path('card/', CardAPIView.as_view(), name='card-api'), + path('about-us-dobodi/', AboutUsDobodiAPIView.as_view(), name='about-us-dobodi-api'), re_path( diff --git a/dynamic_preferences/views.py b/dynamic_preferences/views.py index f12572b..05bc81b 100644 --- a/dynamic_preferences/views.py +++ b/dynamic_preferences/views.py @@ -8,7 +8,8 @@ from .serializers import ( AboutUsSerializer, FAQItemSerializer, SupportSerializer, - CardSerializer + CardSerializer, + AboutUsDobodiSerializer ) class AboutUsAPIView(GenericAPIView): @@ -60,6 +61,16 @@ class CardAPIView(GenericAPIView): serializer = self.get_serializer(data=card) serializer.is_valid(raise_exception=True) return Response(serializer.data) + +class AboutUsDobodiAPIView(GenericAPIView): + serializer_class = AboutUsDobodiSerializer + + def get(self, request, *args, **kwargs): + preferences = global_preferences_registry.manager() + about_us_dobodi = preferences.get('about_us_dobodi__about_us_dobodi', {}) + serializer = self.get_serializer(data=about_us_dobodi) + serializer.is_valid(raise_exception=True) + return Response(serializer.data) """Todo : remove these views and use only context processors"""