class Reset(SweetifySuccessMixin, PasswordResetView): template_name = 'home/password_reset/form.html' email_template_name = 'home/password_reset/email.html' form_class = ResetForm sweetify_options = {'toast': True, 'position': 'top', 'timer': 2500} success_message = '¡Correo enviado correctamente!' success_url = reverse_lazy('home:password_reset_done')
class UserProfileDeleteView(LoginRequiredMixin, DeleteView): model = User success_url = reverse_lazy('home') def get_object(self, queryset=None): self.kwargs[self.pk_url_kwarg] = self.request.user.pk obj = super().get_object(queryset) return obj
class Logout(LogoutView): success_url = reverse_lazy('lugar:listar') def dispatch(self, request, *args, **kwargs): logout(request) success_url = self.success_url if success_url: return HttpResponseRedirect(success_url) return super().dispatch(request, *args, **kwargs)
class Logout(LogoutView): success_url = reverse_lazy('home:login') def dispatch(self, request, *args, **kwargs): logout(request) next_page = self.success_url if next_page: info(request, '¡Se ha cerrado la sesión!', toast=True, position='top', timer=2500) return HttpResponseRedirect(next_page) return super().dispatch(request, *args, **kwargs)
class ProfileView(LoginRequiredMixin, UpdateView): model = Profile fields = ['name', 'phone_number'] template_name = 'my-profile.html' success_url = reverse_lazy('profile') def get_object(self, queryset=None): self.kwargs[self.pk_url_kwarg] = self.request.user.profile.pk obj = super().get_object(queryset) return obj
class Login(LoginView): form_class = LoginForm template_name = 'usuario/login.html' success_url = reverse_lazy('lugar:listar') def form_valid(self, form): client.messages.create(body="Se ha iniciado sesión ", from_="+12405341927", to="+523313220573") login(self.request, form.get_user()) return HttpResponseRedirect(self.success_url)
class Register(SweetifySuccessMixin, CreateView): template_name = 'home/register.html' form_class = RegisterForm model = User sweetify_options = {'toast': True, 'position': 'top', 'timer': 2500} success_message = 'Resgistrado correctamente.' success_url = reverse_lazy('home:login') def form_invalid(self, form): warning(self.request, 'Verifique la información ingresada.', toast=True, position='top', timer=3000) return super(Register, self).form_invalid(form)
class Edit(SweetifySuccessMixin, UpdateView): model = Language form_class = LanguageForm template_name = 'language/edit.html' sweetify_options = {'toast': True, 'position': 'top', 'timer': 2500} success_message = '¡Editado correctamente!' success_url = reverse_lazy('language:index') extra_context = {'title': 'Editar'} def form_invalid(self, form): warning(self.request, 'Verifique la información ingresada.', toast=True, position='top', timer=3000) return self.render_to_response(self.get_context_data(form=form))
class Login(LoginView): template_name = 'home/login.html' form_class = LoginForm success_url = reverse_lazy('home:index') def form_valid(self, form): login(self.request, form.get_user()) info(self.request, '¡Bienvenido(a) {}!'.format(self.request.user.first_name), toast=True, position='top', timer=2500) return HttpResponseRedirect(self.get_success_url()) def form_invalid(self, form): warning(self.request, 'Verifique la información ingresada.', toast=True, position='top', timer=3000) return super(Login, self).form_invalid(form)
def post(self, request, *args, **kwargs): id_user = kwargs['pk'] user = self.model.objects.get(id=id_user) image = str(user.filename) form = self.form_class(request.POST, request.FILES, instance=user) if image != "no.jpg": os.remove(os.path.join(MEDIA_ROOT + '/{}'.format(image))) form.save() success(self.request, '¡Imagen actualizada!', toast=True, position='top', timer=2500) return HttpResponseRedirect( reverse_lazy('user:show', kwargs={'pk': id_user}))
class ChangePassword(SweetifySuccessMixin, PasswordChangeView): template_name = 'user/change_password.html' form_class = PasswordForm sweetify_options = {'toast': True, 'position': 'top', 'timer': 2500} success_message = '¡Contraseña editada correctamente!' success_url = reverse_lazy('user:index') extra_context = {'title': 'Cambiar contraseña de usuario'} def form_invalid(self, form): warning(self.request, '¡Verifique la información ingresada!', toast=True, position='top', timer=3000) return self.render_to_response(self.get_context_data(form=form))
class Edit(SweetifySuccessMixin, UpdateView): model = Course form_class = CourseForm template_name = 'course/form.html' sweetify_options = {'toast': True, 'position': 'top', 'timer': 2500} success_message = '¡Editado correctamente!' success_url = reverse_lazy('course:index') extra_context = {'title': 'Editar', 'titleButton': 'Actualizar'} def form_invalid(self, form): warning(self.request, 'Verifique la información ingresada.', toast=True, position='top', timer=3000) return super(Edit, self).form_invalid(form)
class Create(SweetifySuccessMixin, CreateView): model = Course form_class = CourseForm template_name = 'course/create.html' sweetify_options = {'toast': True, 'position': 'top', 'timer': 2500} success_message = '¡Curso guardado correctamente!' success_url = reverse_lazy('course:index') extra_context = {'title': 'Registrar'} def form_invalid(self, form): warning(self.request, '¡Verifique la información ingresada!', toast=True, position='top', timer=3000) return self.render_to_response(self.get_context_data(form=form))
class Create(SweetifySuccessMixin, CreateView): model = Language form_class = LanguageForm template_name = 'language/form.html' sweetify_options = {'toast': True, 'position': 'top', 'timer': 2500} success_message = '¡Idioma guardado correctamente!' success_url = reverse_lazy('language:index') extra_context = {'title': 'Registrar', 'titleButton': 'Guardar'} def form_invalid(self, form): warning(self.request, 'Verifique la información ingresada.', toast=True, position='top', timer=3000) return super(Create, self).form_invalid(form)
class UserOfferUpdateView(LoginRequiredMixin, UpdateView): model = Offer template_name = 'put-an-ad.html' fields = ['title', 'category', 'subcategory', 'price', 'description'] success_url = reverse_lazy('my_ads') def get_context_data(self): context = super().get_context_data() context['for_create'] = False return context def form_valid(self, form): for f in self.request.FILES.getlist('images'): data = f.read() photo = OfferImage(offer=self.object) photo.image.save(f.name, ContentFile(data)) photo.save() return super().form_valid(form)
class OfferCreateView(LoginRequiredMixin, CreateView): template_name = "put-an-ad.html" model = Offer fields = ['title', 'category', 'subcategory', 'price', 'description'] success_url = reverse_lazy('home') def form_valid(self, form): self.object = form.save(commit=False) self.object.user = self.request.user.profile self.object.save() for f in self.request.FILES.getlist('images'): data = f.read() photo = OfferImage(offer=self.object) photo.image.save(f.name, ContentFile(data)) photo.save() return super().form_valid(form) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['for_create'] = True return context
class UserOfferDeleteView(LoginRequiredMixin, DeleteView): model = Offer success_url = reverse_lazy('my_ads')
class CreateUserView(CreateView): model = CoursesUser form_class = RegistrationForm template_name = 'users/register.html' success_url = reverse_lazy('users:login')
class RegistroUsuario(CreateView): model = User template_name = 'usuario/registrar.html' form_class = RegistroForm success_url = reverse_lazy('lugar:listar')
class ResetConfirm(SweetifySuccessMixin, PasswordResetConfirmView): template_name = 'home/password_reset/confirm.html' form_class = ResetConfirmForm sweetify_options = {'toast': True, 'position': 'top', 'timer': 2500} success_message = '¡Contraseña restablecida correctamente!' success_url = reverse_lazy('home:password_reset_complete')