def test_model_choice_preference(self): global_preferences = global_preferences_registry.manager() global_preferences['blog__featured_entry'] = self.blog_entry in_db = GlobalPreferenceModel.objects.get(section='blog', name='featured_entry') self.assertEqual(in_db.value, self.blog_entry) self.assertEqual(in_db.raw_value, str(self.blog_entry.pk))
def home_page(request): # instanciate a manager for global preferences global_preferences = global_preferences_registry.manager() MAX_VEHICLES_TO_SHOW = global_preferences['homepage__number_of_vehicles'] MAX_CATEGORIES_TO_SHOW = 4 # get list of slider objects sliders = SliderImage.objects.all() # get categories to show on homepage top_categories = Category.objects.get_home_page_categories() if top_categories: top_categories = top_categories[:MAX_CATEGORIES_TO_SHOW] # get recently added vehicles top_vehicles = Vehicle.objects.all().order_by( '-timestamp').prefetch_related('images') if top_vehicles: top_vehicles = top_vehicles[:MAX_VEHICLES_TO_SHOW] return render_to_response("home_page.html", locals(), context_instance=RequestContext( request, processors=[global_context_processor]))
def get(self, request, subscription_id): preferences = global_preferences_registry.manager() subscription = get_object_or_404(Subscription, id=int(subscription_id)) volunteer = subscription.volunteer secret = preferences['payment__bcash_secret'] form = BcashForm(secret=secret, initial={ 'campanha': preferences['payment__campaign'], 'cod_loja': preferences['payment__bcash_cod_loja'], 'email_loja': preferences['payment__receiver_email'], 'meio_pagamento': 10, 'parcela_maxima': 1, 'produto_codigo_1': subscription_id, 'produto_descricao_1': preferences['payment__item_name'].format(volunteer.name), 'produto_qtde_1': 1, 'produto_valor_1': preferences['subscription__ticket_value'], 'redirect': 'true', 'redirect_time': '10', 'url_retorno': urljoin(preferences['general__site_url'], reverse('bcash:return_url')), }) data = { 'fields': form.to_json() } data['endpoint'] = form.get_endpoint() data['image_button'] = form.get_image() response = Response(data) return response
def test_can_bypass_cache_in_get(self): manager = global_preferences_registry.manager() manager['no_section'] with self.assertNumQueries(3): manager['no_section'] manager['no_section'] manager['no_section']
def test_can_cache_all_preferences(self): manager = global_preferences_registry.manager() manager.all() with self.assertNumQueries(0): manager.all() manager.all() manager.all()
def test_can_cache_single_preference(self): manager = global_preferences_registry.manager() v = manager["no_section"] with self.assertNumQueries(0): v = manager["no_section"] v = manager["no_section"] v = manager["no_section"]
def test_can_bypass_cache_in_get_all(self): from django.db import connection manager = global_preferences_registry.manager() queries_before = len(connection.queries) manager.all() manager_queries = len(connection.queries) - queries_before manager.all() self.assertGreater(len(connection.queries), manager_queries)
def test_deleting_model_also_delete_preference(self): global_preferences = global_preferences_registry.manager() global_preferences['blog__featured_entry'] = self.blog_entry self.assertGreater(len(signals.pre_delete.receivers), 0) self.blog_entry.delete() with self.assertRaises(GlobalPreferenceModel.DoesNotExist): GlobalPreferenceModel.objects.get(section='blog', name='featured_entry')
def test_preference_model_manager_to_dict(self): manager = global_preferences_registry.manager() call_command("checkpreferences", verbosity=1, interactive=False) expected = { "test__TestGlobal1": "default value", "test__TestGlobal2": False, "test__TestGlobal3": False, "no_section": False, "user__max_users": 100, "user__items_per_page": 25, "user__registration_allowed": False, } self.assertDictEqual(manager.all(), expected)
def test_preference_model_manager_to_dict(self): manager = global_preferences_registry.manager() call_command('checkpreferences', verbosity=1, interactive=False) expected = { u'test__TestGlobal1': u'default value', u'test__TestGlobal2': False, u'test__TestGlobal3': False, u'no_section': False, u'user__max_users': 100, u'user__items_per_page': 25, u'blog__featured_entry': None, u'user__registration_allowed': False} self.assertDictEqual(manager.all(), expected)
def global_context_processor(request): # instanciate a manager for global preferences global_preferences = global_preferences_registry.manager() default_email = global_preferences.get('general__default_email', None) live_chat = global_preferences.get('general__live_chat', False) # get all the social service providers social_providers = list(Social.objects.all()) # get all parent categories with sub categories all_categories = Category.objects.get_categories_with_sub_categories() # get latest contact details contact_details = ContactDetail.objects.get_latest_contact_details() return locals()
def test_cache_invalidate_on_save(self): manager = global_preferences_registry.manager() model_instance = manager.create_db_pref(section=None, name="no_section", value=False) with self.assertNumQueries(0): assert not manager["no_section"] manager["no_section"] model_instance.value = True model_instance.save() with self.assertNumQueries(0): assert manager["no_section"] manager["no_section"]
def test_quickstart(self): global_preferences = global_preferences_registry.manager() self.assertEqual(global_preferences["user__registration_allowed"], False) global_preferences["user__registration_allowed"] = True self.assertEqual(global_preferences["user__registration_allowed"], True) self.assertEqual(GlobalPreferenceModel.objects.get(section="user", name="registration_allowed").value, True) self.assertEqual(self.henri.preferences["misc__favourite_colour"], "Green") self.henri.preferences["misc__favourite_colour"] = "Blue" self.assertEqual(self.henri.preferences["misc__favourite_colour"], "Blue") self.assertEqual( UserPreferenceModel.objects.get(section="misc", name="favourite_colour", instance=self.henri).value, "Blue" )
def get(self, request, subscription_id): preferences = global_preferences_registry.manager() subscription = get_object_or_404(Subscription, id=int(subscription_id)) volunteer = subscription.volunteer secret = preferences['payment__bcash_secret'] form = BcashForm(secret=secret, initial={ 'campanha': preferences['payment__campaign'], 'cod_loja': preferences['payment__bcash_cod_loja'], 'email_loja': preferences['payment__receiver_email'], 'meio_pagamento': 10, 'parcela_maxima': 1, 'produto_codigo_1': subscription_id, 'produto_descricao_1': preferences['payment__item_name'].format( volunteer.name), 'produto_qtde_1': 1, 'produto_valor_1': preferences['subscription__ticket_value'], 'redirect': 'true', 'redirect_time': '10', 'url_retorno': urljoin(preferences['general__site_url'], reverse('bcash:return_url')), }) data = {'fields': form.to_json()} data['endpoint'] = form.get_endpoint() data['image_button'] = form.get_image() response = Response(data) return response
def handle(self, *args, **options): # Create needed preferences # Global print('Creating missing global preferences...') manager = global_preferences_registry.manager() manager.all() deleted = delete_preferences(GlobalPreferenceModel.objects.all()) print("Deleted {0} global preferences".format(len(deleted))) for preference_model, registry in preference_models.items(): deleted = delete_preferences(preference_model.objects.all()) print("Deleted {0} {1} preferences".format(len(deleted), preference_model.__class__.__name__)) if not hasattr(preference_model, 'get_instance_model'): continue print('Creating missing preferences for {0} model...'.format(preference_model.get_instance_model().__name__)) for instance in preference_model.get_instance_model().objects.all(): instance.preferences.all()
def get(self, request, subscription_id): preferences = global_preferences_registry.manager() subscription = get_object_or_404(Subscription, id=int(subscription_id)) volunteer = subscription.volunteer form = PayPalPaymentsForm(initial={ 'business': preferences['payment__receiver_email'], 'amount': preferences['subscription__ticket_value'], 'custom': preferences['payment__campaign'], 'item_name': preferences['payment__item_name'].format(volunteer.name), 'item_number': subscription_id, 'notify_url': urljoin(preferences['general__site_url'], reverse('paypal-ipn')), 'invoice': 'Subscription(id=%s)' % subscription_id, 'currency_code': 'BRL', 'lc': 'BR', 'no_shipping': '1', 'address_override': '1', 'country': 'BR', 'first_name': volunteer.first_name(), 'last_name': volunteer.last_name(), 'address1': volunteer.address, 'address2': volunteer.complement, 'city': volunteer.city, 'state': volunteer.state, 'zip': volunteer.cep, 'night_phone_a': '', 'night_phone_b': '', 'night_phone_c': '', 'email': volunteer.email, }) data = dict([(f.name, f.value()) for f in form if f.value() is not None]) data['endpoint'] = form.get_endpoint() data['image_button'] = form.get_image() response = Response(data) return response
def test_global_preferences_manager_by_name(self): manager = global_preferences_registry.manager() self.assertEqual(manager.by_name()['max_users'], manager['user__max_users']) self.assertEqual(len(manager.all()), len(manager.by_name()))
def get_instance(cls): if cls._instance is None: cls._instance = global_preferences_registry.manager() return cls._instance
import io import qrcode from django.contrib.contenttypes.models import ContentType from django.db.models.signals import post_save, pre_save from django.dispatch import receiver from django.template.defaultfilters import slugify from dynamic_preferences import global_preferences_registry from paypal.standard.ipn.signals import valid_ipn_received from paypal.standard.ipn.models import PayPalIPN from paypal.standard.models import ST_PP_COMPLETED from bcash.models import Transaction, ST_APPROVED from subscriptions.models import Subscription, SubscriptionPayment preferences = global_preferences_registry.manager() def detect_paypal_payment_and_mark_subscription(sender, **kwargs): match = re.search('^Subscription\(id=(\d+)\)$', sender.invoice) if match: pk = int(match.group(1)) subscription = Subscription.objects.filter(pk=pk).first() if subscription: if sender.payment_status == ST_PP_COMPLETED: subscription.paid = sender.payment_gross subscription.payment = 'eletronic' subscription.save()
def test_global_preferences_manager_get_by_name(self): manager = global_preferences_registry.manager() self.assertEqual(manager.get_by_name('max_users'), manager['user__max_users'])
def setUp(self): # instanciate a manager for global preferences self.global_preferences = global_preferences_registry.manager()
def get(self, request, subscription_id): preferences = global_preferences_registry.manager() subscription = get_object_or_404(Subscription, id=int(subscription_id)) volunteer = subscription.volunteer form = PayPalPaymentsForm( initial={ 'business': preferences['payment__receiver_email'], 'amount': preferences['subscription__ticket_value'], 'custom': preferences['payment__campaign'], 'item_name': preferences['payment__item_name'].format(volunteer.name), 'item_number': subscription_id, 'notify_url': urljoin(preferences['general__site_url'], reverse( 'paypal-ipn')), 'invoice': 'Subscription(id=%s)' % subscription_id, 'currency_code': 'BRL', 'lc': 'BR', 'no_shipping': '1', 'address_override': '1', 'country': 'BR', 'first_name': volunteer.first_name(), 'last_name': volunteer.last_name(), 'address1': volunteer.address, 'address2': volunteer.complement, 'city': volunteer.city, 'state': volunteer.state, 'zip': volunteer.cep, 'night_phone_a': '', 'night_phone_b': '', 'night_phone_c': '', 'email': volunteer.email, }) data = dict([(f.name, f.value()) for f in form if f.value() is not None]) data['endpoint'] = form.get_endpoint() data['image_button'] = form.get_image() response = Response(data) return response
def test_template_gets_global_preferences_via_template_processor(self): global_preferences = global_preferences_registry.manager() url = reverse("dynamic_preferences.test.templateview") response = self.client.get(url) self.assertEqual(response.context["global_preferences"], global_preferences.all())
def test_global_preferences_manager_get(self): global_preferences = global_preferences_registry.manager() self.assertEqual(global_preferences["no_section"], False)
def test_global_preferences_manager_set(self): global_preferences = global_preferences_registry.manager() global_preferences["no_section"] = True self.assertEqual(global_preferences["no_section"], True)