コード例 #1
0
ファイル: views.py プロジェクト: Simouche/chef_dz_backend
 def post(self, request):
     login_form = LoginForm(request.POST)
     if login_form.is_valid():
         user = authenticate(
             username=login_form.cleaned_data.get('username'),
             password=login_form.cleaned_data.get('password'))
         if user:
             login(request, user)
             if request.GET.get('next', None):
                 return redirect(request.GET.get('next'))
             return redirect('restaurants:home')
         else:
             login_form.add_error(None, _('Invalid username/password'))
             context = dict(login_form=login_form)
             return render(request, self.template_name, context)
コード例 #2
0
ファイル: views.py プロジェクト: Simouche/chef_dz_backend
    def get(self, request):
        if request.user.is_authenticated:
            return redirect('restaurants:home')

        login_form = LoginForm()
        context = dict(login_form=login_form)
        return render(request, self.template_name, context)
コード例 #3
0
ファイル: views.py プロジェクト: Simouche/chef_dz_backend
class RegistrationView(FormView):
    template_name = 'restau/register.html'
    success_url = 'restaurants:login'  # todo change this to otp or email verification
    login_form = LoginForm()
    form_class = BaseRegistrationForm

    def get_context_data(self, **kwargs):
        context = super(RegistrationView, self).get_context_data(**kwargs)
        context['loginform'] = self.login_form
        return context

    def form_valid(self, form):
        form.save()
        return redirect(self.get_success_url())
コード例 #4
0
def login_view(request):
    if request.user.is_authenticated:
        return redirect(reverse('user_profile'))
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            pw = form.cleaned_data['password']
            user = authenticate(username=username, password=pw)
            if user is not None:
                if user.is_active:
                    login(request, user)
                    return redirect(reverse('home'))
                else:
                    form.add_error('username',
                                   'This account has been disabled')
            else:
                form.add_error('username', 'Login failed')
    else:
        form = LoginForm()

    context = {'form': form}
    return render(request, 'login.html', context)
コード例 #5
0
ファイル: views.py プロジェクト: Simouche/chef_dz_backend
class Home(View):
    template_name = 'restau/index.html'
    login_form = LoginForm()

    def get(self, request):
        user_avg = None
        if request.user.is_authenticated and 'client' in request.user.groups.all() and \
                request.user.client.is_participant:
            user_avg = Participant.objects.filter(pk=request.user.client.participant.pk) \
                .annotate(likes_=Count("recipes__likes")).annotate(avg=Round(Avg('recipes__stars__stars'), 1))[0]

        recipes = Recipe.objects.all().annotate(avg=Round(Avg('stars__stars'), 1)).annotate(likes_=Count('likes')) \
            .annotate(comments_=(Count('comments'))).order_by('-created_at')
        wilayas = Wilaya.objects.all()
        cuisines = Cuisine.objects.all()
        restaurants = Restaurant.objects.all().order_by('?')[0:11]
        context = {
            'login_form': self.login_form,
            'recipes': recipes,
            'wilayas': wilayas,
            'cuisines': cuisines,
            'user_avg': user_avg,
            'restaurants': restaurants
        }
        return render(request,
                      template_name=self.template_name,
                      context=context)

    def post(self, request):
        filter_form = FilterRecipeForm(request.POST)
        if filter_form.is_valid():
            data_filtered = filter_form.filter()
            html = render_to_string(template_name="list_recipe.html",
                                    context={"data": data_filtered})
            return JsonResponse(data={'html': html})
        else:
            return JsonResponse(data={'html': "Empty"})