def ajax_additional_info_club_card_load_clubs(request, offer_id): """Используется при вводе доп. информации к абонементу для подгрузки клубов в зависимости от номера карты""" if request.method == 'POST' and request.is_ajax(): result = {} offer = get_object_or_404(Offers, pk=offer_id) card_number = request.POST.get('card_number') if not card_number: result['success'] = False result['message'] = 'Вы не ввели номер карты или договора' else: clubs = get_clubs_by_card_number(card_number) if not clubs: result['success'] = False result['message'] = 'Номер карты не опознан. Проверьте правильность ввода' else: appliable_clubs = [] for club in clubs: if club in offer.addresses.all(): appliable_clubs.append(club) if len(appliable_clubs): result['success'] = True result['clubs'] = [] for club in appliable_clubs: result['clubs'].append([club.pk, club.title]) else: result['success'] = False result['message'] = 'К сожалению, эта акция не распространяется на ваш клуб' return HttpResponse(simplejson.dumps(result)) else: return redirect('home')
def clean_card_number(self): card_number = self.cleaned_data.get('card_number') clubs = get_clubs_by_card_number(card_number) if clubs: common_clubs = [] for club in clubs: if club in self.auction.addresses.all(): common_clubs.append(club) if not len(common_clubs): raise forms.ValidationError('Данная акция не распространяется на ваш клуб.') else: raise forms.ValidationError('Данная акция не распространяется на ваш клуб.') return card_number