From d7eea9d37adc60124ba7fbfb334de276b7ac8f1c Mon Sep 17 00:00:00 2001 From: musanaeem <110596170+musanaeem@users.noreply.github.com> Date: Mon, 28 Apr 2025 02:49:54 +0500 Subject: [PATCH] fix: Remove complex change --- .../djangoapps/site_configuration/admin.py | 80 ------------------- .../site_configuration/constants.py | 6 -- 2 files changed, 86 deletions(-) delete mode 100644 openedx/core/djangoapps/site_configuration/constants.py diff --git a/openedx/core/djangoapps/site_configuration/admin.py b/openedx/core/djangoapps/site_configuration/admin.py index e6a6c0e805..2692070acb 100644 --- a/openedx/core/djangoapps/site_configuration/admin.py +++ b/openedx/core/djangoapps/site_configuration/admin.py @@ -1,85 +1,16 @@ """ Django admin page for Site Configuration models """ -from dal import autocomplete -import json - -from django import forms -from django.urls import path from django.utils.translation import gettext_lazy as _ from django.contrib import admin -from .constants import FEATURE_FLAGS from .models import SiteConfiguration, SiteConfigurationHistory -class FeatureFlagAutocomplete(autocomplete.Select2ListView): - def get_list(self): - return list(FEATURE_FLAGS.keys()) - - def get_result_label(self, item): - return item - - def get_result_value(self, item): - return item - -class SiteConfigurationForm(forms.ModelForm): - feature_flags = forms.Field( - required=False, - widget=autocomplete.Select2Multiple( - url='admin:feature-flag-autocomplete', - attrs={ - 'multiple': 'multiple', - 'data-tags': 'true', - 'data-placeholder': 'Select features' - } - ), - label="Enabled Features", - ) - - class Meta: - model = SiteConfiguration - fields = '__all__' - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - current_values = self.instance.site_values or {} - selected_labels = [] - for label, mapping in FEATURE_FLAGS.items(): - if all(current_values.get(k) == v for k, v in mapping.items()): - selected_labels.append(label) - - self.fields['feature_flags'].initial = selected_labels - self.fields['feature_flags'].widget.choices = [(v, v) for v in selected_labels] - - - def clean(self): - cleaned = super().clean() - current_site_values = json.loads(self.data.get('site_values', {})) - selected_flags = self.data.getlist('feature_flags') - if not isinstance(selected_flags, list): - selected_flags = [selected_flags] if selected_flags else [] - - flag_keys = {key for group in FEATURE_FLAGS.values() for key in group} - - site_values = {} - for label in selected_flags: - site_values.update(FEATURE_FLAGS.get(label, {})) - - for key, value in current_site_values.items(): - if key not in flag_keys: - site_values[key] = value - - cleaned['feature_flags'] = selected_flags - cleaned['site_values'] = site_values - - return cleaned class SiteConfigurationAdmin(admin.ModelAdmin): """ Admin interface for the SiteConfiguration object. """ - form = SiteConfigurationForm list_display = ('site', 'enabled', 'site_values') search_fields = ('site__domain', 'site_values') @@ -89,17 +20,6 @@ class SiteConfigurationAdmin(admin.ModelAdmin): """ model = SiteConfiguration - def get_urls(self): - urls = super().get_urls() - custom_urls = [ - path( - 'feature-flag-autocomplete/', - FeatureFlagAutocomplete.as_view(), - name='feature-flag-autocomplete' - ), - ] - return custom_urls + urls - admin.site.register(SiteConfiguration, SiteConfigurationAdmin) diff --git a/openedx/core/djangoapps/site_configuration/constants.py b/openedx/core/djangoapps/site_configuration/constants.py deleted file mode 100644 index ea74312114..0000000000 --- a/openedx/core/djangoapps/site_configuration/constants.py +++ /dev/null @@ -1,6 +0,0 @@ -# TODO: Dummy Tags to be replaced by real values -FEATURE_FLAGS = { - 'Forum Notifications': {'enable_forum_notifications': True}, - 'Live Chat': {'enable_live_chat': True}, - 'Dark Mode': {'enable_dark_mode': True}, -}