Example #1
0
    def site_report(self, object_id):
        try:
            temat = Tematy.objects.get(pk=object_id)
        except Tematy.DoesNotExist:
            return HttpResponseRedirect(url(self.main.main))

        if self.request.method == 'POST':
            form = RaportujTemat(data=self.request.POST)
            if form.is_valid():
                t_rap = TematyMod.objects.create(
                    powod=form.cleaned_data['powod'],
                    kto_raportowal=self.game.user,
                    nadawca=temat.nadawca,
                    odbiorca=temat.odbiorca,
                    temat=temat.temat,
                    data=temat.data)
                for w in temat.wiadomosci_set.all():
                    WiadomosciMod.objects.create(temat=t_rap,
                                                 tekst=w.tekst,
                                                 kto=w.kto,
                                                 data=w.data)
                self.game.send_message("Raport został przyjęty")
                return HttpResponseRedirect(url(self.url.list))
        else:
            form = RaportujTemat()
        topnav = topnav_site(self.game)
        return {"topnav": topnav, "temat": temat, "form": form}
Example #2
0
    def site_czlonkowie(self):
        sojusz_uzytkownika = self.game.get_sojusz()
        if not sojusz_uzytkownika:
            return HttpResponseRedirect(url(self.urls.main))

        czlonek_sojusz = self.game.get_sojusz_czlonek()

        if self.request.REQUEST.has_key(
                "del") and self.game.soj_czy_moze_wyrzucac():
            if Czlonkowie.objects.select_for_update().filter(
                    sojusz=sojusz_uzytkownika,
                    pk=self.request.REQUEST['del']).count() > 0:
                czlonek = Czlonkowie.objects.select_for_update().get(
                    sojusz=sojusz_uzytkownika, pk=self.request.REQUEST['del'])
                if not czlonek.wlasciciel:
                    czlonek.delete()
                else:
                    ile_wlascicieli = Czlonkowie.objects.filter(
                        sojusz=sojusz_uzytkownika, wlasciciel=True).count()
                    if czlonek_sojusz.wlasciciel and ile_wlascicieli >= 2:
                        czlonek.delete()

        czlonkowie = sojusz_uzytkownika.czlonkowie_set.order_by("data")
        topnav = topnav_site(self.game)
        return {
            "topnav": topnav,
            "czlonkowie": czlonkowie,
            "self.game": self.game,
        }
Example #3
0
    def site_profil_edytuj(self):
        sojusz_uzytkownika = self.game.get_sojusz()
        if not sojusz_uzytkownika:
            return HttpResponseRedirect(url(self.urls.main))

        if not self.game.soj_czy_moze_edytowac_opis():
            self.game.send_message(
                "Nie masz uprawnień do edycji opisu sojuszu")
            return HttpResponseRedirect(url(self.urls.profil))

        if self.request.method == 'POST':
            form = SojuszForm(self.request.POST,
                              self.request.FILES,
                              instance=sojusz_uzytkownika)
            if form.is_valid():
                obj = form.save(commit=False)
                if not obj.avatar:
                    obj.avatar = sojusz_uzytkownika.avatar
                obj.save()  # tu tak ma byc
                self.game.send_message("Opis sojuszu został zapisany")
                return HttpResponseRedirect(url(self.urls.my))
        else:
            form = SojuszForm(instance=sojusz_uzytkownika)
        topnav = topnav_site(self.game)
        return {"topnav": topnav, "form": form, "self.game": self.game}
Example #4
0
    def site_zaproszenia(self):
        sojusz_uzytkownika = self.game.get_sojusz()
        if not sojusz_uzytkownika:
            return HttpResponseRedirect(url(self.urls.main))

        if self.request.REQUEST.has_key(
                "del") and self.game.soj_czy_moze_zapraszac():
            sojusz_uzytkownika.zaproszenia_set.filter(
                pk=self.request.REQUEST['del']).delete()
        zaproszenia = sojusz_uzytkownika.zaproszenia_set.order_by("data")

        if self.request.REQUEST.has_key("nick"):
            try:
                zapraszany = User.objects.get(
                    username=self.request.REQUEST['nick'])
                sojusz_mozesz = self.game.soj_czy_moze_zapraszac()
                if not sojusz_mozesz:
                    self.game.send_message('Nie masz uprawnień do zapraszania')
                    return HttpResponseRedirect(url(self.urls.zaproszenia))
                return HttpResponseRedirect(
                    url(self.urls.wyslij_zaproszenie, object_id=zapraszany.id))

            except User.DoesNotExist:
                self.game.send_message('Nie ma takiego gracza')
                return HttpResponseRedirect(url(self.urls.zaproszenia))

        topnav = topnav_site(self.game)
        return {
            "topnav": topnav,
            "zaproszenia": zaproszenia,
            "self.game": self.game
        }
Example #5
0
 def site_show(self, object_id):
     try:
         userprofile = UserProfile.objects.get(pk=object_id)
     except UserProfile.DoesNotExist:
         return HttpResponseRedirect(url(self.all_urls.main.main))
     topnav = topnav_site(self.game)
     return {"u": userprofile, "topnav": topnav}
Example #6
0
    def site_show(self, object_id):
        topnav = topnav_site(self.game)
        raport = Raporty.objects.get(pk=object_id, user=self.game.user)
        if self.request.REQUEST.get('delete', None):
            raport.delete()
            return HttpResponseRedirect(url(self.urls.list))

        return {"raport": raport, "topnav": topnav}
Example #7
0
    def site_list(self):
        tematy = Tematy.objects.filter(
            (Q(nadawca=self.game.user) & Q(n_del='N'))
            | (Q(odbiorca=self.game.user) & Q(o_del='N'))).order_by("-data")
        self.game.userprofile.new_message = 0

        topnav = topnav_site(self.game)
        return {"topnav": topnav, "tematy": tematy}
Example #8
0
    def site_badania(self, object_id=0):
        planeta = self.game.get_current_planet()

        budynek = get_object_or_404(Badania, pk=object_id)

        topnav = topnav_site(self.game)

        return {"topnav": topnav, "budynek": budynek}
Example #9
0
    def site_obrona(self, object_id=0):
        planeta = self.game.get_current_planet()

        budynek = get_object_or_404(Obrona, pk=object_id)
        budynek.opis_dlugi = unicode(budynek.opis_dlugi).replace("\n", "<br>")

        topnav = topnav_site(self.game)
        return {"topnav": topnav, "budynek": budynek}
Example #10
0
    def site_choose(self):
        current_planet = self.game.get_current_planet()

        dane = Output()
        try:
            dane.planeta_id = int(self.request.REQUEST['p'])
            dane.system_id = int(self.request.REQUEST['s'])
            dane.galaktyka_id = int(self.request.REQUEST['g'])
            if 'ship_request' in self.request.session:
                del self.request.session['ship_request']
        except:
            if 'planeta_dane' in self.request.session:
                dane = self.request.session['planeta_dane']
            else:

                return HttpResponseRedirect("/game/galaxy/")
        if not check_is_planet(self.game.user, dane.planeta_id, dane.system_id,
                               dane.galaktyka_id):
            return HttpResponseRedirect("/game/galaxy/")
        if 'ship_request' in self.request.session:
            ship_request = self.request.session['ship_request']
            if not self.request.REQUEST.has_key("cp"):
                del self.request.session['ship_request']
        else:
            ship_request = None

        if is_planet_owner(self.game.user, dane, True):
            return HttpResponseRedirect("/game/galaxy/")

        topnav = topnav_site(self.game)

        dostepne_statki_tmp = Flota_p.objects.values_list(
            'budynek_id', flat=True).filter(planeta=current_planet,
                                            budynek__lata__gt=0,
                                            ilosc__gt=0).order_by("budynek")
        dostepne_statki = []
        for i in dostepne_statki_tmp:
            d = Output()
            statek = self.game.cache_obj.get_flota_p(current_planet.pk, i)
            d.nazwa = statek.budynek.nazwa
            d.ilosc = statek.ilosc
            d.pk = statek.pk
            d.speed = int(get_speed(self.game, statek.budynek, self.game.user))
            if ship_request:
                try:
                    d.value = int(ship_request[d.statek.budynek_id])
                except:
                    d.value = 0
            else:
                d.value = 0
            dostepne_statki.append(d)

        self.request.session['planeta_dane'] = dane
        return {
            "dane": dane,
            'topnav': topnav,
            "dostepne_statki": dostepne_statki
        }
Example #11
0
 def site_show(self, object_id):
     try:
         sojusz = Sojusz.objects.get(pk=object_id)
     except:
         self.game.send_message("Nie ma takiego sojuszu")
         return HttpResponseRedirect(url(self.urls.main))
     czlonkowie = sojusz.czlonkowie_set.order_by("data")
     topnav = topnav_site(self.game)
     return {"topnav": topnav, "sojusz": sojusz, "czlonkowie": czlonkowie}
Example #12
0
    def site_main(self):
        sojusz_uzytkownika = self.game.get_sojusz()
        if sojusz_uzytkownika:
            return HttpResponseRedirect(url(self.urls.my))

        topnav = topnav_site(self.game)
        zaproszenia = self.game.user.zaproszenia_set.order_by("data")
        return {
            "topnav": topnav,
            "zaproszenia": zaproszenia,
        }
Example #13
0
    def site_przeglad(self):
        sojusz_uzytkownika = self.game.get_sojusz()
        if not sojusz_uzytkownika:
            return HttpResponseRedirect(url(self.urls.main))

        wydarzenia = sojusz_uzytkownika.sojuszlog_set.order_by("-id")
        topnav = topnav_site(self.game)
        return {
            "topnav": topnav,
            "sojusz": sojusz_uzytkownika,
            "wydarzenia": wydarzenia
        }
Example #14
0
    def site_main(self, galaxy=None, system=None):
        current_planet = self.game.get_current_planet()
        current_galaxy = self.game.get_galaxy(current_planet.galaxy_id)

        try:
            galaxy = int(galaxy)
        except:
            pass
        try:
            system = int(system)
        except:
            pass

        try:
            galaxy = int(self.request.REQUEST['galaxy'])
        except:
            pass
        try:
            system = int(self.request.REQUEST['system'])
        except:
            pass

        if not galaxy > 0 or galaxy > MAX_GALAXY:
            galaxy = current_galaxy.galaxy
        if not system > 0 or system > MAX_SYSTEM:
            system = current_galaxy.system
        if galaxy > MAX_GALAXY:
            galaxy = 1
        if system > MAX_SYSTEM:
            system = 1

        fields = []
        dane = Output()
        dane.galaxy = galaxy
        dane.system = system
        for i in range(1, MAX_PLANETA + 1):
            try:
                fields.append(
                    Galaxy.objects.get(galaxy=galaxy, system=system, field=i))
            except:
                fields.append(None)

        topnav = topnav_site(self.game)
        jsbody = 'onmousemove="tt_Mousemove(event);"'
        return {
            "jsbody": jsbody,
            "topnav": topnav,
            "fields": fields,
            "dane": dane,
            "models": models,
        }
Example #15
0
    def site_show(self, page=0):
        try:
            page = int(page)
            if page <= 0:
                page = 1
        except:
            page = 1
        zaznaczony_user = None
        if self.request.method == 'POST' and self.request.POST.has_key('user'):
            try:
                punkty = UserProfile.objects.filter(user__username=self.request.POST['user'])
            except:
                punkty = UserProfile.objects.filter(user__username__icontains=self.request.POST['user'])
            if punkty.count() > 0:
                zaznaczony_user = punkty[0].user
                punkty = punkty[0].points

                start = ceil((UserProfile.objects.filter(points__gt=punkty).order_by("-points",
                                                                                     "user").count() + 1) /
                             STATS_PERPAGE)
                page = start + 1
        paginator = Paginator(UserProfile.objects.all().order_by("-points", "user"), STATS_PERPAGE,
                              allow_empty_first_page=True)

        try:
            p = paginator.page(page)
        except InvalidPage:
            page = 1
            p = paginator.page(1)

        stats_tmp = p.object_list
        od = int((page - 1) * STATS_PERPAGE)
        stats = []
        count = 1
        for s in stats_tmp:
            st = Output()
            st.user = s
            st.miejsce = count + od
            count += 1
            stats.append(st)

        topnav = topnav_site(self.game)
        return {"topnav": topnav, "stats": stats, "paginator": paginator, "page": page, "p": p,
                "zaznaczony_user": zaznaczony_user}
Example #16
0
    def site_show(self, object_id=None):
        try:
            temat = Tematy.objects.get(
                Q(pk=object_id),
                Q(nadawca=self.game.user) | Q(odbiorca=self.game.user))
            if self.game.user == temat.odbiorca:
                temat.o_prz = 'T'
            elif self.game.user == temat.nadawca:
                temat.n_prz = 'T'
            if not temat.data:
                temat.data = strftime("%Y-%m-%d %H:%M:%S")
            temat.save(force_update=True)
            if "text" in self.request.REQUEST:
                text = self.request.REQUEST['text']
                new = Wiadomosci.objects.create(
                    temat=temat,
                    tekst=text,
                    kto=self.game.user,
                    data=strftime("%Y-%m-%d %H:%M:%S"))

                alien_userprofile = None
                if self.game.user == temat.odbiorca:
                    temat.n_prz = 'N'
                    temat.n_del = 'N'
                    alien_user, alien_userprofile = self.game.lock_alien_user(
                        temat.nadawca_id)
                elif self.request.user == temat.nadawca:
                    temat.o_prz = 'N'
                    temat.o_del = 'N'
                    alien_user, alien_userprofile = self.game.lock_alien_user(
                        temat.odbiorca_id)
                temat.data = new.data
                temat.save(force_update=True)
                if alien_userprofile:
                    alien_userprofile.new_message += 1
                    alien_userprofile.save(force_update=True)
            wiadomosci = Wiadomosci.objects.filter(
                temat=temat).order_by("data")
        except Tematy.DoesNotExist:
            return HttpResponseRedirect("/game/overview/")

        topnav = topnav_site(self.game)
        return {"topnav": topnav, "temat": temat, "wiadomosci": wiadomosci}
Example #17
0
    def site_wyslij_zaproszenie(self, object_id=None):
        try:
            zapraszany = User.objects.get(pk=object_id)
        except:
            raise Http404

        sojusz_uzytkownika = self.game.get_sojusz()
        if not sojusz_uzytkownika:
            return HttpResponseRedirect(url(self.urls.main))

        if not self.game.soj_czy_moze_zapraszac():
            self.game.send_message("Nie możesz zapraszać")
            return HttpResponseRedirect(url(self.urls.zaproszenia))
        elif self.game.soj_czy_nie_nalezy(
                zapraszany,
                sojusz_uzytkownika) and self.game.soj_czy_nie_zaproszony(
                    zapraszany, sojusz_uzytkownika):
            zaproszenie_obj = Zaproszenia(user=zapraszany,
                                          sojusz=sojusz_uzytkownika,
                                          od=self.game.user)
            if self.request.method == 'POST':
                form = ZaproszenieForm(data=self.request.REQUEST,
                                       instance=zaproszenie_obj)
                if form.is_valid():
                    form.save()
                    self.game.send_message("Zaproszenie zostało wysłane")
                    SojuszLog.objects.create(
                        sojusz=sojusz_uzytkownika,
                        tekst='Gracz ' + "<a href='/game/usr/" +
                        str(zapraszany.pk) + "/'>" + zapraszany.username +
                        '</a> został zaproszony przez gracza ' + "<a "
                        "href='/game/usr/" + str(self.game.user.pk) + "/'>" +
                        self.game.user.username + "</a>")
                    return HttpResponseRedirect(url(self.urls.zaproszenia))
            else:
                form = ZaproszenieForm(instance=zaproszenie_obj)

            topnav = topnav_site(self.game)
            return {"topnav": topnav, "form": form, "zapraszany": zapraszany}
        else:
            self.game.send_message(
                "Użytkownik już był zapraszany lub jest w plemieniu")
        return HttpResponseRedirect(url(self.urls.zaproszenia))
Example #18
0
    def site_list(self):
        self.game.userprofile.nowe_raporty = 0

        typ = self.request.REQUEST.get('typ', None)

        if self.request.POST.has_key('zaznaczone'):
            zaznaczone = self.request.POST.getlist('zaznaczone')
            if self.request.POST.has_key('del'):
                Raporty.objects.filter(user=self.game.user,
                                       pk__in=zaznaczone).delete()

        if typ == 'powrot':
            raporty = Raporty.objects.filter(user=self.game.user,
                                             typ='B').order_by("-id")
        elif typ == 'kolonizacja':
            raporty = Raporty.objects.filter(user=self.game.user,
                                             typ='K').order_by("-id")
        elif typ == 'przeslij':
            raporty = Raporty.objects.filter(user=self.game.user,
                                             typ='P').order_by("-id")
        elif typ == 'transport':
            raporty = Raporty.objects.filter(user=self.game.user,
                                             typ='T').order_by("-id")
        elif typ == 'atak':
            raporty = Raporty.objects.filter(user=self.game.user,
                                             typ='A').order_by("-id")
        elif typ == 'zlom':
            raporty = Raporty.objects.filter(user=self.game.user,
                                             typ='Z').order_by("-id")
        elif typ == 'szpieg':
            raporty = Raporty.objects.filter(user=self.game.user,
                                             typ='S').order_by("-id")
        elif typ == 'all':
            raporty = Raporty.objects.filter(
                user=self.game.user).order_by("-id")
        else:
            raporty = Raporty.objects.filter(user=self.game.user).exclude(
                typ='B').order_by("-id")

        topnav = topnav_site(self.game)
        return {"raporty": raporty, "topnav": topnav}
Example #19
0
    def site_zaloz(self):
        if Czlonkowie.objects.select_for_update().filter(
                user=self.game.user).count() > 0 > 0:
            return HttpResponseRedirect(url(self.urls.main))

        if self.request.method == 'POST':
            form = SojuszForm(self.request.POST, self.request.FILES)
            if form.is_valid():
                obj = form.save(commit=False)
                obj.save()  # tu tak ma byc
                czlonek = Czlonkowie.objects.create(user=self.game.user,
                                                    sojusz=obj,
                                                    wlasciciel=True)
                SojuszLog.objects.create(
                    sojusz=obj,
                    tekst='Sojuszu został założony przez ' +
                    "<a href='/game/usr/" + str(self.game.user.pk) + "/'>" +
                    self.game.user.username + "</a>")
                return HttpResponseRedirect(url(self.urls.profil))
        else:
            form = SojuszForm()

        topnav = topnav_site(self.game)
        return {"topnav": topnav, "form": form}
Example #20
0
    def site_main(self):
        try:
            typ = self.request.REQUEST['typ']
        except:
            typ = None

        planety = self.game.get_all_planets()

        planets = []
        budynki = None
        badania = None
        floty = None
        obrona = None
        razem = {}
        colspan = 0
        if typ == 'budynki':
            budynki = Buildings.objects.all().order_by('id')
            colspan = len(budynki)
            for p_id in planety:
                self.game.cron_function(p_id)
                planeta = self.game.get_planet(p_id)
                pl = Output()
                pl.planeta = planeta
                pl.budynki = []
                for b in budynki:
                    level = self.game.bud_get_level(planeta, b.pk)
                    if b.pk in razem:
                        razem[b.pk] += level
                    else:
                        razem[b.pk] = level
                    pl.budynki.append(level)
                    # pl.planeta.powierzchnia_max =  planeta.powierzchnia_max
                planets.append(pl)
        elif typ == 'badania':
            badania = Badania.objects.all().order_by('id')
            colspan = len(badania)
            for b in badania:
                level = self.game.bad_get_level(self.game.user, b.pk)
                if b.pk in razem:
                    razem[b.pk] += level
                else:
                    razem[b.pk] = level
                planets.append(level)

        elif typ == 'flota':
            floty = Flota.objects.all().order_by('id')
            colspan = len(floty)
            for p_id in planety:
                self.game.cron_function(p_id)
                planeta = self.game.get_planet(p_id)
                pl = Output()
                pl.planeta = planeta
                pl.floty = []
                for f in floty:
                    try:
                        ilosc = planeta.flota_p_set.get(budynek=f).ilosc
                    except:
                        ilosc = 0
                    if f.pk in razem:
                        razem[f.pk] += ilosc
                    else:
                        razem[f.pk] = ilosc
                    pl.floty.append(ilosc)
                planets.append(pl)
        elif typ == 'obrona':
            obrona = Obrona.objects.all().order_by('id')
            colspan = len(obrona)
            for p_id in planety:
                self.game.cron_function(p_id)
                planeta = self.game.get_planet(p_id)
                pl = Output()
                pl.planeta = planeta
                pl.obrona = []
                for f in obrona:
                    try:
                        ilosc = planeta.obrona_p_set.get(budynek=f).ilosc
                    except:
                        ilosc = 0
                    if f.pk in razem:
                        razem[f.pk] += ilosc
                    else:
                        razem[f.pk] = ilosc
                    pl.obrona.append(ilosc)
                planets.append(pl)
        else:
            typ = 'surowce'
            razem['met'] = 0
            razem['cry'] = 0
            razem['deu'] = 0
            razem['ene_used'] = 0
            razem['ene_max'] = 0
            for p_id in planety:
                planeta = self.game.get_planet(p_id)
                self.game.cron_function(p_id)
                pl = Output()
                pl.planeta = planeta
                razem['met'] += planeta.metal
                razem['cry'] += planeta.crystal
                razem['deu'] += planeta.deuter
                razem['ene_used'] += planeta.energy_used
                razem['ene_max'] += planeta.energy_max
                pl.planeta.powierzchnia_max = planeta.powierzchnia_max
                planets.append(pl)
        colspan += 5

        topnav = topnav_site(self.game)
        return {
            'topnav': topnav,
            "colspan": colspan,
            "razem": razem,
            "planety": planets,
            "budynki": budynki,
            "badania": badania,
            "obrona": obrona,
            "floty": floty,
            "typ": typ
        }
Example #21
0
    def site_edit(self):
        current_planet = self.game.get_current_planet()

        if self.game.userprofile:
            if self.request.method == 'POST':

                form_change = ChangePassMail(self.request.POST)
                if form_change.is_valid():
                    pass1 = form_change.cleaned_data['password1']
                    pass2 = form_change.cleaned_data['password2']
                    email = form_change.cleaned_data['email']
                    if pass1 == pass2 and len(pass1) >= 5:
                        salt = sha1(str(random.random())).hexdigest()[:5]
                        activation_key = sha1(salt + pass1).hexdigest()
                        ZmianaHasla.objects.create(user=self.game.user,
                                                   haslo=pass1,
                                                   hash=activation_key)
                        message = render_to_string('mail/change.txt', {
                            'link':
                            '%s/change_pass/%s' % (URL, activation_key)
                        })
                        subject = 'Link z %s' % (URL, )
                        subject = ''.join(subject.splitlines())
                        send_mail(subject, message,
                                  settings.DEFAULT_FROM_EMAIL,
                                  [self.game.user.email])
                        message = "Żeby dokończyć zmianę hasła, odbierz pocztę z emaila i kliknij w link"
                        send_info_message(user=self.game.user, message=message)

                    if email:
                        salt = sha1(str(random.random())).hexdigest()[:5]
                        activation_key = sha1(salt + email).hexdigest()
                        ZmianaMaila.objects.create(user=self.game.user,
                                                   email=email,
                                                   hash=activation_key)
                        message = render_to_string('mail/change.txt', {
                            'link':
                            '%s/change_email/%s' % (URL, activation_key)
                        })
                        subject = 'Link z %s' % (URL, )
                        subject = ''.join(subject.splitlines())
                        send_mail(subject, message,
                                  settings.DEFAULT_FROM_EMAIL,
                                  [self.game.user.email])
                        message = "Żeby dokończyć zmianę emaila, odbierz pocztę ze starego emaila i kliknij w link"
                        send_info_message(user=self.game.user, message=message)
                form = UserprofileForm(self.request.POST,
                                       self.request.FILES,
                                       instance=self.game.userprofile)
                if form.is_valid():
                    obj = form.save(commit=False)
                    if not obj.avatar:
                        obj.avatar = self.game.userprofile.avatar
                    obj.save()  # tu tak ma byc
                    return HttpResponseRedirect(url(self.url))
            else:
                form = UserprofileForm(instance=self.game.userprofile)
                form_change = ChangePassMail()

            topnav = topnav_site(self.game)
            return {
                "topnav": topnav,
                "form": form,
                'form_change': form_change,
                "u": self.game.userprofile
            }
        return HttpResponseRedirect(url(self.all_urls.main.main))
Example #22
0
    def site_accept(self):
        current_planet = self.game.get_current_planet()

        if 'planeta_dane' in self.request.session:
            planeta_dane = self.request.session['planeta_dane']
        else:
            return HttpResponseRedirect("/game/overview/")

        try:
            if self.request.REQUEST.has_key('speed'):
                test = float(self.request.REQUEST['speed'])
                planeta_dane.speed_procent = test
            if not planeta_dane.speed_procent >= 1.0 or not planeta_dane.speed_procent <= 10.0:
                planeta_dane.speed_procent = 10.0
        except:
            return HttpResponseRedirect("/game/fs/spy/")

        if not check_is_planet(self.game.user, planeta_dane.planeta_id,
                               planeta_dane.system_id,
                               planeta_dane.galaktyka_id):
            return HttpResponseRedirect("/game/galaxy/")

        if is_planet_owner(self.game.user, planeta_dane, True):
            return HttpResponseRedirect("/game/galaxy/")

        if 'id_statkow' in self.request.session:
            id_statkow = self.request.session['id_statkow']
        else:
            id_statkow = None
        if 'ship_request' in self.request.session:
            ship_request = self.request.session['ship_request']
        else:
            ship_request = None

        if not id_statkow or not ship_request:
            tmp = get_ship_request(self.game, current_planet, self.request,
                                   self.game.user, planeta_dane)
        else:
            tmp = get_ship_request(self.game, current_planet, self.request,
                                   self.game.user, planeta_dane, False, False,
                                   False)

        if not tmp:
            if not id_statkow or not ship_request:
                return HttpResponseRedirect("/game/fs/spy/")
            else:
                tmp = check_ship_request(self.game, self.request,
                                         current_planet, planeta_dane,
                                         id_statkow, ship_request,
                                         self.game.user)
                if not tmp:
                    return HttpResponseRedirect("/game/fs/spy/")

        id_statkow = tmp['id_statkow']
        ship_request = tmp['ship_request']
        dane_floty = tmp['dane_floty']
        statki_podsumowanie = tmp['statki_podsumowanie']

        dane_floty.odleglosc = odleglosc(current_planet,
                                         planeta_dane.galaktyka_id,
                                         planeta_dane.system_id,
                                         planeta_dane.planeta_id)
        dane_floty.czas_lotu = getCzasLotu(planeta_dane.speed_procent,
                                           dane_floty.speed,
                                           dane_floty.odleglosc, FLEET_SPEED)
        dane_floty.zuzycie_deuter = get_zuzycie_deuteru(
            dane_floty, planeta_dane)

        if dane_floty.bak_pojemnosc - dane_floty.zuzycie_deuter < 0:
            message = "Nie można zabrać wystarczająco paliwa. Pojemność baków:" + str(
                dane_floty.bak_pojemnosc) + ", potrzeba:" + str(
                    dane_floty.zuzycie_deuter)
            send_error_message(user=self.game.user, message=message)
            return HttpResponseRedirect("/game/fs/spy/")
        if dane_floty.zuzycie_deuter > current_planet.deuter:
            message = "Masz za mało deuteru na planecie"
            send_error_message(user=self.game.user, message=message)
            return HttpResponseRedirect("/game/fs/spy/")

        self.request.session['planeta_dane'] = planeta_dane
        self.request.session['dane_floty'] = dane_floty
        self.request.session['ship_request'] = ship_request
        self.request.session['id_statkow'] = id_statkow

        topnav = topnav_site(self.game)
        return {
            "planeta_dane": planeta_dane,
            "dane_floty": dane_floty,
            'topnav': topnav,
            "statki_podsumowanie": statki_podsumowanie
        }
Example #23
0
    def site_main(self):
        self.game.userprofile_podglad_flota()
        current_planet = self.game.get_current_planet()

        if "fast_fleet_del" in self.request.REQUEST:
            self.game.userprofile.fast_fleet.remove(
                self.request.REQUEST['fast_fleet_del'])
        if "fast_fleet_add" in self.request.REQUEST:
            try:
                fast_planet = Planets.objects.get(
                    pk=self.request.REQUEST['fast_fleet_add'])
                self.game.userprofile.fast_fleet.add(fast_planet)
            except:
                pass

        try:
            page = int(self.request.REQUEST['page'])
            if not page > 0:
                page = 1
        except:
            page = 1
        paginator = Paginator(self.game.userprofile.fast_fleet.all(),
                              20,
                              allow_empty_first_page=True)
        if page > paginator.num_pages:
            page = paginator.num_pages

        p = paginator.page(page)
        fast_fleet = p.object_list

        if "fs_zawroc" in self.request.REQUEST:
            message = "Flotę zawrócono"
            send_info_message(user=self.game.user, message=message)
            zawroc(self.request.REQUEST['fs_zawroc'], self.game.user)

        if "g" in self.request.REQUEST and "s" in self.request.REQUEST and "p" in self.request.REQUEST and "typ" in self.request.REQUEST:
            try:
                g = int(self.request.REQUEST['g'])
                s = int(self.request.REQUEST['s'])
                p = int(self.request.REQUEST['p'])
                if self.request.REQUEST['typ'] == 'a':
                    return HttpResponseRedirect(
                        "/game/fs/atak/?g=%d&s=%d&p=%d" % (g, s, p))
                elif self.request.REQUEST['typ'] == 'k':
                    return HttpResponseRedirect(
                        "/game/fs/kolonizuj/?g=%d&s=%d&p=%d" % (g, s, p))
                elif self.request.REQUEST['typ'] == 'p':
                    return HttpResponseRedirect(
                        "/game/fs/przeslij/?g=%d&s=%d&p=%d" % (g, s, p))
                elif self.request.REQUEST['typ'] == 't':
                    return HttpResponseRedirect(
                        "/game/fs/surowce/?g=%d&s=%d&p=%d" % (g, s, p))
                elif self.request.REQUEST['typ'] == 'z':
                    return HttpResponseRedirect(
                        "/game/fs/zlom/?g=%d&s=%d&p=%d" % (g, s, p))
                elif self.request.REQUEST['typ'] == 's':
                    return HttpResponseRedirect(
                        "/game/fs/spy/?g=%d&s=%d&p=%d" % (g, s, p))
            except:
                message = "Wprowadź poprawne dane do ataku"
                send_error_message(user=self.game.user, message=message)
                pass

        dostepne_statki_tmp = Flota_p.objects.filter(
            planeta=current_planet, budynek__lata__gt=0,
            ilosc__gt=0).order_by("budynek")
        dostepne_statki = []
        for i in dostepne_statki_tmp:
            d = i
            d.speed = int(get_speed(self.game, i.budynek, self.game.user))
            dostepne_statki.append(d)

        # userprofile.fast_fleet.add(planeta)

        floty_own, floty_obce, _ = get_flota(self.game)
        topnav = topnav_site(self.game)
        return {
            "paginator": paginator,
            "fast_fleet": fast_fleet,
            "floty_own": floty_own,
            "floty_obce": floty_obce,
            'topnav': topnav,
            "dostepne_statki": dostepne_statki
        }
Example #24
0
    def site_main(self):
        self.game.userprofile_podglad_flota()
        if "fs_zawroc" in self.request.REQUEST:
            fun.zawroc(self.request.REQUEST['fs_zawroc'], self.game.user)

        if "rename_planet" in self.request.REQUEST:
            self.game.rename_planet(self.request.REQUEST["rename_planet"])

        current_planet = self.game.get_current_planet()

        galaxyrow = self.game.get_galaxy(current_planet.galaxy_id)
        planety_klucze = self.game.get_all_planets()
        planety_klucze.remove(self.game.current_planet_id)

        output = fun.Output()
        output.planets = []

        for k in planety_klucze:
            output.planets.append(self.game.get_planet(k))

        output.other_data = fun.Output()
        output.other_data.time = strftime(
            "%c")  # strftime("%a %b %H:%M:%S")#date("D M d H:i:s",time());

        output.current_planet = current_planet

        if (galaxyrow):
            output.current_galaxy = galaxyrow

        output.user_data = fun.Output()
        output.user_data.user_rank = UserProfile.objects.filter(
            points__gt=self.game.userprofile.points).order_by(
                "-points").count() + 1
        output.user_data.userprofile = self.game.userprofile
        output.user_data.user = self.game.user
        output.user_data.user_points = int(
            self.game.userprofile.points_obrona) + int(
                self.game.userprofile.points_builds) + int(
                    self.game.userprofile.points_flota) + int(
                        self.game.userprofile.points_tech)

        output.other_data.max_users = User.objects.all().count()

        output.current_zajete = fun.Output()
        output.current_zajete.budowanie = current_planet.zajety_budowaniem()
        output.current_zajete.badanie = current_planet.zajety_badaniem()
        output.current_zajete.obrona = current_planet.zajety_obrona()
        output.current_zajete.flota = current_planet.zajety_flota()

        if not output.current_zajete.budowanie and not output.current_zajete.badanie and not output.current_zajete.obrona and not output.current_zajete.flota:
            output.current_zajete.building_free = "Oczekuje"

        topnav = topnav_site(self.game)

        timesql = 0.0
        for q in connection.queries:
            if 'time' in q:
                timesql += float(q['time'])
        seen = {}
        duplicate = 0
        for q in connection.queries:
            sql = q["sql"]
            c = seen.get(sql, 0)
            if c:
                duplicate += 1
            q["seen"] = c
            seen[sql] = c + 1

        if self.game.userprofile.podglad_flota == True:
            floty_own, floty_obce, floty = fun.get_flota(self.game)
        else:
            floty_own, floty_obce, floty = fun.get_flota(self.game, 1)

        output.other_data.procent = current_planet.get_procent_producji()

        return {
            'output': output,
            'topnav': topnav,
            "floty": floty,
            "floty_own": floty_own,
            "floty_obce": floty_obce,
            "sqltime": timesql,
            "duplicate": duplicate,
        }
Example #25
0
    def site_main(self):
        current_planet = self.game.get_current_planet()

        bud = Buildings.objects.all()
        bad = Badania.objects.all()
        flo = Flota.objects.all()
        obr = Obrona.objects.all()

        budynki = []
        for i in bud:
            budynek = Output()
            budynek.id = i.pk
            budynek.nazwa = i.nazwa
            budynek.zal_bud = []
            for zal_b in split(i.w_bud, ";"):
                zbud = split(zal_b, ",")
                if len(zbud) > 1:
                    tmp = Output()
                    tmp.nazwa = Buildings.objects.get(pk=zbud[0]).nazwa
                    tmp.level = zbud[1]
                    level = int(
                        self.game.bud_get_level(current_planet, zbud[0]))
                    if int(zbud[1]) <= level:
                        tmp.spelnione = 1
                    budynek.zal_bud.append(tmp)

            budynek.zal_bad = []
            for zal_b in split(i.w_bad, ";"):
                zbud = split(zal_b, ",")
                if len(zbud) > 1:
                    tmp = Output()
                    tmp.nazwa = Badania.objects.get(pk=zbud[0]).nazwa
                    tmp.level = zbud[1]
                    level = int(
                        self.game.bad_get_level(self.game.user, zbud[0]))
                    if int(zbud[1]) <= level:
                        tmp.spelnione = 1
                    budynek.zal_bad.append(tmp)
            budynki.append(budynek)

        badania = []
        for i in bad:
            badanie = Output()
            badanie.id = i.pk
            badanie.nazwa = i.nazwa
            badanie.zal_bud = []
            for zal_b in split(i.w_bud, ";"):
                zbud = split(zal_b, ",")
                if len(zbud) > 1:
                    tmp = Output()
                    tmp.nazwa = Buildings.objects.get(pk=zbud[0]).nazwa
                    tmp.level = zbud[1]
                    level = int(
                        self.game.bud_get_level(current_planet, zbud[0]))
                    if int(zbud[1]) <= level:
                        tmp.spelnione = 1
                    badanie.zal_bud.append(tmp)

            badanie.zal_bad = []
            for zal_b in split(i.w_bad, ";"):
                zbud = split(zal_b, ",")
                if len(zbud) > 1:
                    tmp = Output()
                    tmp.nazwa = Badania.objects.get(pk=zbud[0]).nazwa
                    tmp.level = zbud[1]
                    level = int(
                        self.game.bad_get_level(self.game.user, zbud[0]))
                    if int(zbud[1]) <= level:
                        tmp.spelnione = 1
                    badanie.zal_bad.append(tmp)
            badania.append(badanie)

        floty = []
        for i in flo:
            flota = Output()
            flota.id = i.pk
            flota.nazwa = i.nazwa
            flota.zal_bud = []
            for zal_b in split(i.w_bud, ";"):
                zbud = split(zal_b, ",")
                if len(zbud) > 1:
                    tmp = Output()
                    tmp.nazwa = Buildings.objects.get(pk=zbud[0]).nazwa
                    tmp.level = zbud[1]
                    level = int(
                        self.game.bud_get_level(current_planet, zbud[0]))
                    if int(zbud[1]) <= level:
                        tmp.spelnione = 1
                    flota.zal_bud.append(tmp)

            flota.zal_bad = []
            for zal_b in split(i.w_bad, ";"):
                zbud = split(zal_b, ",")
                if len(zbud) > 1:
                    tmp = Output()
                    tmp.nazwa = Badania.objects.get(pk=zbud[0]).nazwa
                    tmp.level = zbud[1]
                    level = int(
                        self.game.bad_get_level(self.game.user, zbud[0]))
                    if int(zbud[1]) <= level:
                        tmp.spelnione = 1
                    flota.zal_bad.append(tmp)
            floty.append(flota)

        obronne = []
        for i in obr:
            obrona = Output()
            obrona.id = i.pk
            obrona.nazwa = i.nazwa
            obrona.zal_bud = []
            for zal_b in split(i.w_bud, ";"):
                zbud = split(zal_b, ",")
                if len(zbud) > 1:
                    tmp = Output()
                    tmp.nazwa = Buildings.objects.get(pk=zbud[0]).nazwa
                    tmp.level = zbud[1]
                    level = int(
                        self.game.bud_get_level(current_planet, zbud[0]))
                    if int(zbud[1]) <= level:
                        tmp.spelnione = 1
                    obrona.zal_bud.append(tmp)

            obrona.zal_bad = []
            for zal_b in split(i.w_bad, ";"):
                zbud = split(zal_b, ",")
                if len(zbud) > 1:
                    tmp = Output()
                    tmp.nazwa = Badania.objects.get(pk=zbud[0]).nazwa
                    tmp.level = zbud[1]
                    level = int(
                        self.game.bad_get_level(self.game.user, zbud[0]))
                    if int(zbud[1]) <= level:
                        tmp.spelnione = 1
                    obrona.zal_bad.append(tmp)
            obronne.append(obrona)

        topnav = topnav_site(self.game)
        return {
            "topnav": topnav,
            "budynki": budynki,
            "badania": badania,
            "floty": floty,
            "obronne": obronne,
        }
Example #26
0
    def site_dealer(self):
        topnav = topnav_site(self.game)

        return {
            "topnav": topnav,
        }
Example #27
0
    def site_for_sale(self, page=1):
        try:
            page = int(page)
            if page <= 0:
                page = 1
        except:
            page = 1
        current_planet = self.game.get_current_planet()

        rynek_obj = Rynek(planeta=current_planet)

        if self.request.method == 'POST':
            rynek_form = RynekForm(instance=rynek_obj, data=self.request.POST)
            if rynek_form.is_valid():
                co = rynek_form.cleaned_data['co']
                co_ile = rynek_form.cleaned_data['co_ile']
                # na = rynek_form.cleaned_data['na']
                na_ile = rynek_form.cleaned_data['na_ile']
                ilosc = rynek_form.cleaned_data['ilosc']
                dobre_dane = True
                ile_surowca = int(ceil(co_ile * ilosc * 1.05))

                if na_ile / co_ile > 100.0 or na_ile / co_ile < 0.01:
                    message = "Stosunek kupna do sprzedaży musi zawierać sie od 100/1 do 1/100"
                    send_error_message(user=self.game.user, message=message)
                    dobre_dane = False

                if co_ile < 0 or na_ile < 0:
                    message = "Wartości muszą być większe od 0"
                    send_error_message(user=self.game.user, message=message)
                    dobre_dane = False

                if dobre_dane:
                    if co == 'M':
                        if ile_surowca > current_planet.metal:
                            message = "Nie masz tyle metalu na planecie: %s" % ile_surowca
                            send_error_message(user=self.game.user,
                                               message=message)
                            dobre_dane = False
                        else:
                            current_planet.metal -= ile_surowca
                    elif co == 'K':
                        if ile_surowca > current_planet.crystal:
                            message = "Nie masz tyle kryształu na planecie: %s" % ile_surowca
                            send_error_message(user=self.game.user,
                                               message=message)
                            dobre_dane = False
                        else:
                            current_planet.crystal -= ile_surowca
                    elif co == 'D':
                        if ile_surowca > current_planet.deuter:
                            message = "Nie masz tyle deuteru na planecie: %s" % ile_surowca
                            send_error_message(user=self.game.user,
                                               message=message)
                            dobre_dane = False
                        else:
                            current_planet.deuter -= ile_surowca

                if Rynek.objects.select_for_update().filter(
                        planeta__owner=self.game.user).count() > 15:
                    message = "Osiągnąłeś limit 15 ofert na rynku, nie możesz już więcej wystawić"
                    send_error_message(user=self.game.user, message=message)
                    dobre_dane = False

                if dobre_dane:
                    rynek_obj = rynek_form.save(commit=False)
                    rynek_obj.planeta = current_planet
                    rynek_obj.ratio = na_ile / co_ile
                    rynek_obj.save()  # tu tak ma byc
                    message = "Wystawiłeś ofertę na rynku"
                    send_info_message(user=self.game.user, message=message)
                    return HttpResponseRedirect(url(self.urls.main))
            else:
                message = "Musisz podać wszystkie dane"
                send_error_message(user=self.game.user, message=message)
        else:
            rynek_form = RynekForm(instance=rynek_obj)

        if "wycofaj" in self.request.GET:
            try:
                wycofanie = Rynek.objects.select_for_update().get(
                    pk=self.request.GET['wycofaj'],
                    planeta__owner=self.game.user)
                planeta_wycofania = self.game.get_planet(wycofanie.planeta_id)

                ile_surowca = int(wycofanie.co_ile * wycofanie.ilosc)
                if wycofanie.co == 'M':
                    message = "Wycofanie oferty, przybyło metalu na planecie: %s" % ile_surowca
                    send_info_message(user=self.game.user, message=message)
                    planeta_wycofania.metal += ile_surowca
                elif wycofanie.co == 'K':
                    message = "Wycofanie oferty, przybyło kryształu na planecie: %s" % ile_surowca
                    send_info_message(user=self.game.user, message=message)
                    planeta_wycofania.crystal += ile_surowca
                elif wycofanie.co == 'D':
                    message = "Wycofanie oferty, przybyło deuteru na planecie: %s" % ile_surowca
                    send_info_message(user=self.game.user, message=message)
                    planeta_wycofania.deuter += ile_surowca
                wycofanie.delete()
                return HttpResponseRedirect(url(self.url))

            except:
                return HttpResponseRedirect(url(self.url))

        rynek_twoje = Rynek.objects.filter(planeta__owner=self.game.user)
        paginator = Paginator(rynek_twoje, 20, allow_empty_first_page=True)
        try:
            p = paginator.page(page)
        except:
            return HttpResponseRedirect(url(self.url))

        rynek_obj = p.object_list

        topnav = topnav_site(self.game)
        return {
            "topnav": topnav,
            "rynek_twoje": rynek_obj,
            "rynek_form": rynek_form,
            "paginator": paginator,
            "page": page,
            "page_list": p,
        }
Example #28
0
    def site_main(self):
        current_planet = self.game.get_current_planet()

        budynki_produkujace = Buildings.objects.filter(czy_produkcja__gt=0)
        flota_produkujaca = Flota.objects.filter(czy_produkcja__gt=0)

        budynki = current_planet.budynki_p_set.filter(budynek__in=budynki_produkujace).order_by("budynek")
        flota = current_planet.flota_p_set.filter(budynek__in=flota_produkujaca).order_by("budynek")

        if self.request.POST:

            for tmp in budynki:
                b = self.game.cache_obj.get_budynek_p(current_planet.pk, tmp.budynek_id)
                if b:
                    building_key = "bud_%s" % b.budynek_id
                    if building_key in self.request.POST:
                        try:
                            tmp_procenty = int(self.request.POST[building_key])
                            if (tmp_procenty <= 100) and tmp_procenty >= 0:
                                b.procent = tmp_procenty
                        except:
                            pass

            for tmp in flota:
                b = self.game.cache_obj.get_flota_p(current_planet.pk, tmp.budynek_id)
                if b:
                    building_key = "flo_%s" % b.budynek_id
                    if building_key in self.request.POST:
                        try:
                            tmp_procenty = int(self.request.POST[building_key])
                            if (tmp_procenty <= 100) and tmp_procenty >= 0:
                                b.procent = tmp_procenty
                        except:
                            pass

        # self.game.cron_function(current_planet.pk)
        # self.game.save_all()
        surowce = []

        resources = []
        for tmp in budynki:
            i = Output()
            i.dane = self.game.cache_obj.get_budynek_p(current_planet.pk, tmp.budynek_id)
            i.czy_budynek = 1
            resources.append(i)
        for tmp in flota:
            i = Output()
            i.dane = self.game.cache_obj.get_flota_p(current_planet.pk, tmp.budynek_id)
            i.czy_statek = 1
            resources.append(i)

        produkcja = Output()
        produkcja.metal = 0
        produkcja.crystal = 0
        produkcja.deuter = 0
        produkcja.energy = 0
        ilosc_produkujacych = 0
        procenty = 0
        for b in resources:
            sur = Output()
            statek = b.dane
            sur.statek = b
            sur.nazwa = statek.budynek.nazwa
            procent = statek.procent
            procenty += procent
            ilosc_produkujacych += 1
            level = statek.level
            ilosc = statek.ilosc
            temp_max = current_planet.temp_max
            # sur.metal = sur.crystal = sur.deuter = sur.energy = 0
            sur.metal = int(eval(statek.budynek.met_formula))
            sur.id = statek.budynek_id
            produkcja.metal += sur.metal
            sur.crystal = int(eval(statek.budynek.cry_formula))
            produkcja.crystal += sur.crystal
            sur.deuter = int(eval(statek.budynek.deu_formula))
            produkcja.deuter += sur.deuter
            sur.energy = int(eval(statek.budynek.ene_formula))
            produkcja.energy += sur.energy
            surowce.append(sur)

        try:
            produkcja.procent = int(procenty / ilosc_produkujacych)
        except:
            produkcja.procent = 0

        produkcja.metal_dzien = produkcja.metal * 24
        produkcja.metal_tydzien = produkcja.metal_dzien * 7
        produkcja.metal_miesiac = produkcja.metal_dzien * 30
        produkcja.metal_ladownosc_procent = int(current_planet.metal * 100 / current_planet.metal_max)

        produkcja.crystal_dzien = produkcja.crystal * 24
        produkcja.crystal_tydzien = produkcja.crystal_dzien * 7
        produkcja.crystal_miesiac = produkcja.crystal_dzien * 30
        produkcja.crystal_ladownosc_procent = int(current_planet.crystal * 100 / current_planet.crystal_max)

        produkcja.deuter_dzien = produkcja.deuter * 24
        produkcja.deuter_tydzien = produkcja.deuter_dzien * 7
        produkcja.deuter_miesiac = produkcja.deuter_dzien * 30
        produkcja.deuter_ladownosc_procent = int(current_planet.deuter * 100 / current_planet.deuter_max)

        topnav = topnav_site(self.game)
        return {
            'topnav': topnav, "surowce": surowce,
            "planet": current_planet, "produkcja": produkcja
        }
Example #29
0
    def site_main(self, page=1):
        # current_planet = self.game.get_current_planet()
        sort_form = RynekSearch(self.request.POST,
                                prefix="sortowanie_surowiec")

        # rynek = Rynek.objects.exclude(planeta__owner=user).order_by("ratio")
        rynek = Rynek.objects.order_by("ratio")

        sortowanie_surowiec_co = None
        if 'handlarz_sort_surowiec_co' in self.request.session:
            sortowanie_surowiec_co = self.request.session[
                'handlarz_sort_surowiec_co']

        sortowanie_surowiec_na = None
        if 'handlarz_sort_surowiec_na' in self.request.session:
            sortowanie_surowiec_na = self.request.session[
                'handlarz_sort_surowiec_na']

        try:
            page = int(page)
            if page <= 0:
                page = 1
        except:
            page = 1

        if sort_form.is_valid():
            if sort_form.cleaned_data['co'] in ('M', 'K', 'D'):
                sortowanie_surowiec_co = sort_form.cleaned_data['co']
            elif sort_form.cleaned_data['co'] == '-':
                sortowanie_surowiec_co = None
            else:
                sort_form.cleaned_data['co'] = sortowanie_surowiec_co

            if sort_form.cleaned_data['na'] in ('M', 'K', 'D'):
                sortowanie_surowiec_na = sort_form.cleaned_data['na']
            elif sort_form.cleaned_data['na'] == '-':
                sortowanie_surowiec_na = None
            else:
                sort_form.cleaned_data['na'] = sortowanie_surowiec_na

            self.request.session[
                'handlarz_sort_surowiec_co'] = sortowanie_surowiec_co
            self.request.session[
                'handlarz_sort_surowiec_na'] = sortowanie_surowiec_na

        if sortowanie_surowiec_co:
            rynek = rynek.filter(co=sortowanie_surowiec_co)

        if sortowanie_surowiec_na:
            rynek = rynek.filter(na=sortowanie_surowiec_na)

        paginator = Paginator(rynek, 20, allow_empty_first_page=True)
        try:
            p = paginator.page(page)
        except:
            return HttpResponseRedirect(url(self.url))

        rynek_obj = p.object_list

        topnav = topnav_site(self.game)
        return {
            "topnav": topnav,
            "rynek": rynek_obj,
            "sort_form": sort_form,
            "paginator": paginator,
            "page": page,
            "page_list": p,
        }
Example #30
0
    def site_compose(self, object_id=None):
        topnav = topnav_site(self.game)
        #try:
        user = None

        if "nick" in self.request.REQUEST:
            object_id = self.request.REQUEST['nick']
            try:
                user = User.objects.get(username__exact=object_id)
            except User.DoesNotExist:
                pass
        else:
            try:
                user = User.objects.exclude(pk=self.game.user.pk).get(
                    pk=object_id)
            except User.DoesNotExist:
                pass
        if not user:
            self.game.send_message("Błędny odbiorca wiadomości")
            return HttpResponseRedirect(url(self.urls.list))
        alien_user, alien_userprofile = self.game.lock_alien_user(user.pk)

        errors = []
        if self.request.method == 'POST':

            if 'temat' not in self.request.POST or not len(
                    self.request.POST['temat']) > 0:
                errors.append("Tytuł wiadomości jest wymagany!!!")
            if ('wiadomosc' not in self.request.POST
                ) or not len(self.request.POST['wiadomosc']) > 0:
                errors.append("Treść wiadomości jest wymagana!!!")
            if not errors:
                new_t = Tematy.objects.create(
                    nadawca=self.game.user,
                    odbiorca=alien_user,
                    n_del='N',
                    o_del='N',
                    n_prz='T',
                    o_prz='N',
                    temat=self.request.POST['temat'],
                    data=strftime("%Y-%m-%d %H:%M:%S"))
                Wiadomosci.objects.create(temat=new_t,
                                          tekst=self.request.POST['wiadomosc'],
                                          kto=self.game.user,
                                          data=strftime("%Y-%m-%d %H:%M:%S"))
                self.request.session['msg'] = "Wiadomość została wysłana"
                alien_userprofile.new_message += 1
                alien_userprofile.save(force_update=True)
                return HttpResponseRedirect(
                    url(self.urls.show, object_id=new_t.id))
        chars = string.letters + string.digits
        ticket1 = ''.join([random.choice(chars) for _ in range(16)])
        ticket2 = ''.join([random.choice(chars) for _ in range(16)])
        ktory = random.randint(0, 1)
        self.request.session['ticket1'] = ticket1
        self.request.session['ticket2'] = ticket2
        self.request.session['ktory'] = ktory
        return {
            "dane1": ticket1,
            "dane2": ticket2,
            "ktory": ktory,
            "errors": errors,
            "alien_user": alien_user,
            "topnav": topnav,
            "req": self.request.REQUEST
        }