Пример #1
0
    def post(self, request):
        context = prepare_context(request, show_navbar=True)
        context['selectedTicket'] = request.POST.get('selectedTicket')

        if request.POST.get('paymentMethod'):
            payment_method = request.POST.get('paymentMethod')
            user = User.objects.get(username=request.user.username)
            account = Account.objects.get(user_id=user)
            ticket_info = list(
                map(int,
                    request.POST.get('selectedTicket').split('-')))

            ticket = Ticket.objects.create(
                buyer=account,
                boardingTrain=Train.objects.get(pk=ticket_info[0]),
                fromStation=Timetable.objects.get(pk=ticket_info[1]),
                toStation=Timetable.objects.get(pk=ticket_info[2]),
                transactionInformation=payment_method,
                transactionStatus=False,
                bookingStatus=False)
            # print(payment_method, ticket)
            context['ticket'] = ticket
            return redirect('selectTransaction', ticket_id=ticket.id)
        else:
            return render(request,
                          'booking/selectTransaction.html',
                          context=context)
Пример #2
0
    def post(self, request):
        context = prepare_context(request, show_navbar=True)
        annoucement_form = AnnouncementForm(request.POST)
        user = request.user
        account = Account.objects.get(user_id_id=user.id)

        if annoucement_form.is_valid():
            data_form = annoucement_form.clean()

            if data_form['announce_text'] is None:
                context['error'] = {
                    'errorMsg': 'Please fill in the announcement form'
                }
            else:
                announcement = Announcement.objects.create(
                    announce_text=data_form['announce_text'],
                    announce_time=datetime.now(),
                    view_count=0,
                    announcer_user_id=account.id)

                announcement.save()
                return redirect('/announcement/')

        context['announcement_form'] = annoucement_form
        return render(request,
                      'announcement/createAnnouncement.html',
                      context=context)
Пример #3
0
 def post(self, request):
     context = prepare_context(request, show_navbar=True)
     context['schedule'] = {
         'from': request.POST.get('from'),
         'to': request.POST.get('to')
     }
     return render(request, 'booking/searchSchedule.html', context=context)
Пример #4
0
def dashboard(request):
    context = prepare_context(request, show_navbar=True)

    context = {
        'show_navbar': True,
        'announcement': Announcement.objects.order_by("-announce_time"),
        'stations': Station.objects.all()
    }
    return render(request, 'dashboard.html', context=context)
Пример #5
0
 def get(self, request, announcement_id):
     context = prepare_context(request, show_navbar=True)
     # announcer = Announcer.objects.get(user_id=account.id)
     announcement_form = AnnouncementForm()
     context['announcement_form'] = announcement_form
     context['announcement'] = Announcement.objects.get(pk=announcement_id)
     return render(request,
                   'announcement/editAnnouncement.html',
                   context=context)
Пример #6
0
def successful_booking(request, ticket_id):
    context = prepare_context(request, show_navbar=True)
    ticket = Ticket.objects.get(id=ticket_id)
    user = User.objects.get(username=request.user.username)
    account = Account.objects.get(user_id=user)

    if ticket.buyer.id != account.id:
        return redirect('/')
    else:
        context['ticket'] = ticket
        return render(request,
                      'booking/successfulBooking.html',
                      context=context)
Пример #7
0
    def get(self, request):
        context = prepare_context(request, show_navbar=True)
        user = request.user
        context['user'] = user
        account = Account.objects.get(user_id_id=user.id)

        # announcer = Announcer.objects.get(user_id=account.id)
        context['announcement'] = Announcement.objects.all()
        context['is_announcer'] = account.user_type == 'AN'

        return render(request,
                      'announcement/viewAnnouncement.html',
                      context=context)
Пример #8
0
    def post(self, request, ticket_id):
        context = prepare_context(request, show_navbar=True)
        ticket = Ticket.objects.get(pk=ticket_id)
        transaction_information = request.POST.get('transaction_information')
        transaction_status = request.POST.get('transaction_status')
        booking_status = request.POST.get('booking_status')

        ticket.transactionInformation = transaction_information
        ticket.transactionStatus = HTMLCheckboxToBoolean(transaction_status)
        ticket.bookingStatus = HTMLCheckboxToBoolean(booking_status)

        ticket.save()

        return redirect('/transaction')
Пример #9
0
    def get(self, request):
        context = prepare_context(request, show_navbar=True)
        user = request.user
        # announcer = Announcer.objects.get(user_id=account.id)
        context['announcement'] = Announcement.objects.filter(
            announcer_user_id=account.id)

        context['user'] = user
        announcement_form = AnnouncementForm()
        context['announcement_form'] = announcement_form

        return render(request,
                      'announcement/createAnnouncement.html',
                      context=context)
Пример #10
0
    def get(self, request):
        context = prepare_context(request, show_navbar=True)
        user = User.objects.get(username=request.user.username)
        account = Account.objects.get(user_id=user)
        print(account.user_type)
        is_TS = account.user_type == 'TS'
        context['is_TS'] = is_TS

        if is_TS:
            tickets = Ticket.objects.all().order_by("-buyDate")
            context['ticket'] = tickets
        else:
            tickets = Ticket.objects.filter(buyer=account).order_by("-buyDate")
            context['ticket'] = tickets
        return render(request, 'booking/historyBooking.html', context=context)
Пример #11
0
    def post(self, request, announcement_id):
        context = prepare_context(request, show_navbar=True)
        announcement = Announcement.objects.get(pk=announcement_id)
        text = request.POST.get('announce_text')
        count = request.POST.get('view_count')

        if text != announcement.announce_text:
            announcement.announce_text = text

        if count != announcement.view_count:
            announcement.view_count = count

        announcement.announce_time = datetime.now()
        announcement.save()

        return redirect('/announcement/')
Пример #12
0
    def get(self, request):
        context = prepare_context(request, show_navbar=True)
        user = request.user
        context['user'] = user
        account = Account.objects.get(user_id_id=user.id)
        if account.user_type == 'TS':
            context['ticket'] = Ticket.objects.all()
            context['is_TS'] = True
        else:
            context['ticket'] = Ticket.objects.filter(buyer_id=account.id)

        context['schedule'] = Timetable.objects.all()
        context['station'] = Station.objects.all()
        context['train'] = Train.objects.all()

        return render(request,
                      'transaction/viewTransaction.html',
                      context=context)
Пример #13
0
    def post(self, request):
        context = prepare_context(request, show_navbar=True)
        context['timetable'] = Timetable.objects.filter()

        from_st = request.POST.get('from')
        to_st = request.POST.get('to')

        if from_st != to_st:
            timetables = []
            train_filter = Timetable.objects.filter(
                Q(station_id__in=[from_st, to_st])).values('train_id')
            train_filter_id = set([t['train_id'] for t in train_filter])
            for train in Train.objects.filter(id__in=train_filter_id):
                train_timetable = Timetable.objects.filter(
                    train_id__exact=train.id)
                from_filter = train_timetable.filter(station_id=from_st)
                to_filter = train_timetable.filter(station_id=to_st)

                if (from_filter != None and to_filter != None and len(from_filter) > 0 and len(to_filter) > 0):
                    if (from_filter[0].departed_time and to_filter[0].arrived_time and from_filter[0].departed_time < to_filter[0].arrived_time):
                        timetables.append({
                            'train': train,
                            'schedule': {
                                'from': from_filter[0],
                                'to': to_filter[0]
                            }
                        })
            context['timetables'] = timetables
            context['stations'] = Station.objects.all()
            context['schedule'] = {
                'from': Station.objects.get(pk=from_st),
                'to': Station.objects.get(pk=to_st)
            }
        else:
            context['train'] = Train.objects.all()
            context['timetable'] = Timetable.objects.all()
            context['stations'] = Station.objects.all()
            context['error'] = {
                'errorMsg': 'Please select different stations.'
            }

        return render(request, 'schedule/searchTimetable.html', context=context)
Пример #14
0
 def get(self, request):
     context = prepare_context(request, show_navbar=True)
     context['stations'] = Station.objects.all()
     return render(request, 'booking/searchSchedule.html', context=context)
Пример #15
0
 def get(self, request):
     context = prepare_context(request, show_navbar=True)
     return redirect('booking/schedules/')
Пример #16
0
 def get(self, request):
     context = prepare_context(request, show_navbar=True)
     context['train'] = Train.objects.all()
     context['timetable'] = Timetable.objects.all()
     context['stations'] = Station.objects.all()
     return render(request, 'schedule/searchTimetable.html', context=context)
Пример #17
0
 def get(self, request, ticket_id):
     context = prepare_context(request, show_navbar=True)
     context['ticket'] = Ticket.objects.get(pk=ticket_id)
     return render(request,
                   'transaction/editTransaction.html',
                   context=context)