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}
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 }
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}
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, }
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}
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}
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}
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))
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, }
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 }
def site_registration(self): form = UserCreationForm() if self.request.method == 'POST': form = UserCreationForm(data=self.request.POST) if form.is_valid(): user = form.save() self._mine_login(user) messages.info(self.request, message="Dziękujemy za zarejestrowanie się") #RegistrationEmailTask.delay_countdown(user.id) if 'next' in self.request.REQUEST and self.request.REQUEST[ "next"] != url(self.urls.registration): return HttpResponseRedirect(self.request.REQUEST['next']) return HttpResponseRedirect(url(self.all_urls.main.main)) return { "form": form, }
def site_change_pass(self, activation_key): data_mozliwa = datetime.datetime.now() - datetime.timedelta(days=1) zmiany = ZmianaHasla.objects.select_for_update().filter( hash=activation_key, data__gte=data_mozliwa) for z in zmiany: user = User.objects.select_for_update().get(pk=z.user_id) user.set_password(z.haslo) user.save(force_update=True) message = "Zmiana hasła powiodła się" send_info_message(user=user, message=message) z.delete() return HttpResponseRedirect(url(self.urls.edit))
def site_change_email(self, activation_key): data_mozliwa = datetime.datetime.now() - datetime.timedelta(days=1) zmiany = ZmianaMaila.objects.select_for_update().filter( hash=activation_key, data__gte=data_mozliwa) for z in zmiany: user = User.objects.select_for_update().get(pk=z.user_id) StareMaile.objects.create(user=user, email=user.email) user.email = z.email user.save(force_update=True) message = "Zmiana emaila powiodła się" send_info_message(user=user, message=message) z.delete() return HttpResponseRedirect(url(self.urls.edit))
def site_dolacz(self, object_id=None): sojusz_uzytkownika = self.game.get_sojusz() if sojusz_uzytkownika: self.game.send_message("Należysz już do sojuszu") return HttpResponseRedirect(url(self.urls.main)) zaproszenia = self.game.user.zaproszenia_set.order_by("data") try: sojusz = Sojusz.objects.get(pk=object_id) zaproszenie_obj = self.game.user.zaproszenia_set.get(sojusz=sojusz) except: self.game.send_message("Nie masz zaproszenia do sojuszu") return HttpResponseRedirect(url(self.urls.main)) self.game.send_message('Dołączyłeś do sojuszu: %s' % (sojusz.nazwa, )) new = Czlonkowie.objects.create(user=self.game.user, sojusz=sojusz) tekst = "<a href='/game/usr/%s/'>%s</a> przyjął zaproszenie do sojuszu." % ( self.game.user.pk, self.game.user.username, ) SojuszLog.objects.create(sojusz=sojusz, tekst=tekst) zaproszenie_obj.delete() return HttpResponseRedirect(url(self.urls.main))
def site_opusc(self): sojusz_uzytkownika = self.game.get_sojusz() if not sojusz_uzytkownika: return HttpResponseRedirect(url(self.urls.main)) nalezy = self.game.get_sojusz_czlonek() if nalezy.wlasciciel and Czlonkowie.objects.filter( sojusz=sojusz_uzytkownika, wlasciciel=True).count() <= 1: sojusz_uzytkownika.zaproszenia_set.all().delete() sojusz_uzytkownika.czlonkowie_set.all().delete() sojusz_uzytkownika.sojuszlog_set.all().delete() sojusz_uzytkownika.sojuszchat_set.all().delete() sojusz_uzytkownika.delete() nalezy.delete() else: nalezy.delete() # except:pass send_info_message(user=self.game.user, message='Opuściłeś sojusz: %s' % (sojusz_uzytkownika.nazwa, )) return HttpResponseRedirect(url(self.urls.main))
def site_odrzuc(self, object_id=None): try: zaproszenie = self.game.user.zaproszenia_set.get(pk=object_id) sojusz = zaproszenie.sojusz SojuszLog.objects.create( sojusz=sojusz, tekst="<a href='/game/usr/" + str(self.game.user.pk) + "/'>" + self.game.user.username + '</a> odrzucił zaproszenie do sojuszu.' + "</a>") zaproszenie.delete() message = 'Odrzuciłeś zaproszenie do sojusz: %s' % (sojusz.nazwa, ) send_error_message(user=self.user, message=message) except: sojusz = None return HttpResponseRedirect(url(self.urls.main))
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}
def site_change_planets_order(self): planety = self.game.get_all_planets() for p_id in planety: planeta = self.game.get_planet(p_id) kolej_str = 'kolej_%s' % (p_id) if kolej_str in self.request.POST: try: planeta.kolej = int(self.request.POST[kolej_str]) except: pass message = 'Kolejność planet została uaktualniona' send_error_message(user=self.game.user, message=message) redirect_url = url(self.urls.main) if 'HTTP_REFERER' in self.request.META: if len(self.request.META['HTTP_REFERER']) > 3: redirect_url = self.request.META['HTTP_REFERER'] return HttpResponseRedirect(redirect_url)
def site_delete(self, object_id): 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: if temat.n_del == 'T': Wiadomosci.objects.filter(temat=temat).delete() temat.delete() else: temat.o_del = 'T' temat.save(force_update=True) elif self.game.user == temat.nadawca: if temat.o_del == 'T': Wiadomosci.objects.filter(temat=temat).delete() temat.delete() else: temat.n_del = 'T' temat.save(force_update=True) except Tematy.DoesNotExist: pass return HttpResponseRedirect(url(self.urls.list))
def site_take_offer(self): current_planet = self.game.get_current_planet() if "id" in self.request.REQUEST: try: rynek_obj = Rynek.objects.select_for_update().get( pk=self.request.REQUEST['id']) req_obj = Output() req_obj.user = rynek_obj.planeta.owner GraAlienObject = BaseGame(req_obj) GraAlienObject.save_all() planeta_alien = GraAlienObject.get_planet(rynek_obj.planeta_id) rynek_obj = Rynek.objects.select_for_update().get( pk=self.request.REQUEST['id']) except Rynek.DoesNotExist: message = "Nie ma już takiej oferty na rynku, wybież inną" send_error_message(user=self.game.user, message=message) return HttpResponseRedirect(url(self.urls.main)) else: message = "Nie ma już takiej oferty na rynku, wybież inną" send_error_message(user=self.game.user, message=message) return HttpResponseRedirect(url(self.urls.main)) if rynek_obj.planeta.owner_id == self.game.user.id: message = "Nie możesz kupić swojej oferty, nawet jeśli jest z innej planety" send_error_message(user=self.game.user, message=message) GraAlienObject.save_all() return HttpResponseRedirect(url(self.urls.main)) try: ilosc = int(self.request.REQUEST["ilosc"]) except: send_error_message(user=self.game.user, message="Wybież prawidłową ilość paczek") GraAlienObject.save_all() return HttpResponseRedirect(url(self.urls.main)) if ilosc > rynek_obj.ilosc: message = "Wybież prawidłową ilość paczek" send_error_message(user=self.game.user, message=message) GraAlienObject.save_all() return HttpResponseRedirect(url(self.urls.main)) ile_oddajemy = ilosc * rynek_obj.na_ile if rynek_obj.na == 'M': if ile_oddajemy > current_planet.metal: message = "Nie masz tyle surowców żeby to kupić" send_error_message(user=self.game.user, message=message) GraAlienObject.save_all() return HttpResponseRedirect(url(self.urls.main)) current_planet.metal -= ile_oddajemy planeta_alien.metal += ile_oddajemy elif rynek_obj.na == 'K': if ile_oddajemy > current_planet.crystal: message = "Nie masz tyle surowców żeby to kupić" send_error_message(user=self.game.user, message=message) GraAlienObject.save_all() return HttpResponseRedirect(url(self.urls.main)) current_planet.crystal -= ile_oddajemy planeta_alien.crystal += ile_oddajemy elif rynek_obj.na == 'D': if ile_oddajemy > current_planet.deuter: message = "Nie masz tyle surowców żeby to kupić" send_error_message(user=self.game.user, message=message) GraAlienObject.save_all() return HttpResponseRedirect(url(self.urls.main)) current_planet.deuter -= ile_oddajemy planeta_alien.deuter += ile_oddajemy message = "%s kupił %s paczek po %s %s" % ( self.game.user.username, ilosc, rynek_obj.na_ile, dlugie_nazwy[str( rynek_obj.na).lower()]) send_info_message(user=GraAlienObject.user, message=message) ile_dostajemy = rynek_obj.co_ile * ilosc if rynek_obj.co == 'M': current_planet.metal += ile_dostajemy elif rynek_obj.co == 'K': current_planet.crystal += ile_dostajemy elif rynek_obj.co == 'D': current_planet.deuter += ile_dostajemy if ilosc >= rynek_obj.ilosc: rynek_obj.delete() else: rynek_obj.ilosc -= ilosc rynek_obj.save(force_update=True) message = "Właśnie kupiłeś surowce" send_info_message(user=self.game.user, message=message) GraAlienObject.save_all() return HttpResponseRedirect(url(self.urls.main))
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, }
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))
def site_main(self): if self.user and self.user.is_active: return HttpResponseRedirect(url(self.all_urls.game.main)) return {}
def site_take_from_dealer(self): planeta = self.game.get_current_planet() poprawne_dane = True if 'co_sprzedaje' not in self.request.POST: message = "Musisz wybrać co sprzedajesz" send_error_message(user=self.game.user, message=message) poprawne_dane = False else: co_sprzedaje = self.request.POST['co_sprzedaje'] if co_sprzedaje not in ('m', 'k', 'd'): message = "Musisz wybrać co sprzedajesz" send_error_message(user=self.game.user, message=message) poprawne_dane = False if 'sprzedaje_na' not in self.request.POST: message = "Musisz wybrać co kupujesz" send_error_message(user=self.game.user, message=message) poprawne_dane = False else: sprzedaje_na = self.request.POST['sprzedaje_na'] if sprzedaje_na not in ('m', 'k', 'd'): message = "Musisz wybrać co kupujesz" send_error_message(user=self.game.user, message=message) poprawne_dane = False try: ilosc_sprzedawanego = int(self.request.POST['ilosc_sprzedawanego']) except: message = "Musisz podać poprawną ilość sprzedawanego surowca" send_error_message(user=self.game.user, message=message) poprawne_dane = False if poprawne_dane: ile_mam = 0 if co_sprzedaje == 'm': ile_mam = planeta.metal elif co_sprzedaje == 'k': ile_mam = planeta.crystal elif co_sprzedaje == 'd': ile_mam = planeta.deuter if ilosc_sprzedawanego < 0: message = "Ilość sprzedawanego musi być większa od 0" send_error_message(user=self.game.user, message=message) poprawne_dane = False elif ile_mam < ilosc_sprzedawanego: message = "Nie masz tyle surowca" send_error_message(user=self.game.user, message=message) poprawne_dane = False else: ile_kupilismy = floor( floor(ilosc_sprzedawanego * 0.9) * grid_sprzedawcy[co_sprzedaje][sprzedaje_na]) if co_sprzedaje == 'm': planeta.metal -= ilosc_sprzedawanego elif co_sprzedaje == 'k': planeta.crystal -= ilosc_sprzedawanego elif co_sprzedaje == 'd': planeta.deuter -= ilosc_sprzedawanego if sprzedaje_na == 'm': planeta.metal += ile_kupilismy elif sprzedaje_na == 'k': planeta.crystal += ile_kupilismy elif sprzedaje_na == 'd': planeta.deuter += ile_kupilismy message = "Kupiłeś %s %s za %s %s" % ( int(ile_kupilismy), dlugie_nazwy[sprzedaje_na], ilosc_sprzedawanego, dlugie_nazwy[co_sprzedaje]) send_info_message(user=self.game.user, message=message) return HttpResponseRedirect(url(self.urls.dealer))
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, }
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 }