Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BaseUserPrefsUpdateView(LoginRequiredMixin, UpdateView):
- model = None
- form_class = None
- partial_template_name = None
- template_name = 'userprofile/update_profile.html'
- def get_template_names(self):
- if self.request.is_ajax():
- return self.partial_template_name
- return self.template_name
- def get_context_data(self, **kwargs):
- ctx = super(BaseUserPrefsUpdateView, self).get_context_data(**kwargs)
- ctx.update({'form_template': self.get_template_names()})
- return ctx
- def get_object(self, queryset=None):
- raise NotImplementedError(
- 'Must implement get_object in {}'.format(self.__class__.__name__))
- def form_valid(self, form):
- form.save()
- message = 'Profile updated successfully'
- return JsonResponse({'message': message})
- def form_invalid(self, form):
- return self.render_to_response(
- self.get_context_data(form=form), status=400
- )
- class UserInfoUpdateView(BaseUserPrefsUpdateView):
- model = User
- form_class = UserInfoForm
- partial_template_name = 'userprofile/_info_form.html'
- def get_object(self, queryset=None):
- queryset = self.get_queryset()
- return queryset.filter(pk=self.request.user.pk).get()
- def form_valid(self, form):
- user = form.save()
- update_user_bydesign.delay(user.id)
- message = 'Personal Information updated successfully'
- return JsonResponse({'message': message})
- class UserShippingAddressUpdateView(BaseUserPrefsUpdateView):
- model = Address
- form_class = ShippingAddressForm
- partial_template_name = 'userprofile/_shipping_address_form.html'
- def get_object(self, queryset=None):
- return self.request.user.shipping_address
- def form_valid(self, form):
- address = form.save()
- # FIXME: Address doesn't have a backwards relationship to User so this
- # can't go in the form.save() where it probably should be without
- # passing User in.
- if not self.request.user.shipping_address:
- self.request.user.shipping_address = address
- self.request.user.save()
- message = 'Address updated successfully'
- return JsonResponse({'message': message})
- class UserSettingsUpdateView(BaseUserPrefsUpdateView):
- model = UserSettings
- form_class = UserSettingsForm
- partial_template_name = 'userprofile/_contact_preferences_form.html'
- def get_object(self, queryset=None):
- return self.request.user.settings
- class UserPasswordUpdateView(BaseUserPrefsUpdateView):
- model = User
- form_class = PasswordChangeForm
- partial_template_name = 'userprofile/_password_change_form.html'
- def get_object(self, queryset=None):
- queryset = self.get_queryset()
- return queryset.filter(pk=self.request.user.pk).get()
- def get_form_kwargs(self):
- kwargs = super(UserPasswordUpdateView, self).get_form_kwargs()
- kwargs.update({'user': kwargs.pop('instance')})
- return kwargs
- class StoreFrontOptionsUpdateView(BaseUserPrefsUpdateView):
- model = StoreFront
- form_class = StoreFrontOptionsForm
- partial_template_name = 'userprofile/_storefront_options_form.html'
- def get_object(self, queryset=None):
- return StoreFront.objects.get_or_instantiate_for_user(
- self.request.user
- )
- class UserProfileUpdateView(BaseUserPrefsUpdateView):
- model = User
- form_class = UserInfoForm
- partial_template_name = 'userprofile/_info_form.html'
- def get_object(self, queryset=None):
- queryset = self.get_queryset()
- return queryset.filter(pk=self.request.user.pk).get()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement