示例#1
0
    def GET(self, id=None):
        super(Fahrzeuge, self).check_login()
        if self.user_allowed:
            if id is None:
                if User.logged_in_user.data["rolle"] == "leitung":
                    fahrzeuge = Fahrzeug.find(None, 100000)
                else:
                    fahrzeuge = Fahrzeug.find(
                        {"benutzerId": User.logged_in_user.data["id"]}, 100000)
            else:
                if User.logged_in_user.data["rolle"] == "leitung":
                    fahrzeuge = Fahrzeug.find({"id": id})
                else:
                    fahrzeuge = Fahrzeug.find({
                        "benutzerId":
                        User.logged_in_user.data["id"],
                        "id":
                        id
                    })

            return json.dumps({
                "success":
                True,
                "fahrzeuge":
                ModelAbstract.get_data_of_objects(fahrzeuge)
            })

        return json.dumps({
            "success": False,
            "message": "Aktion nicht erlaubt!"
        })
示例#2
0
文件: fahrzeuge.py 项目: Heddy147/ias
	def DELETE(self, id):
		super(Fahrzeuge, self).check_login()
		if self.user_allowed:
			fahrzeug = Fahrzeug.find({"id": id})

			if fahrzeug is None:
				return json.dumps({
					"success": False,
					"messages": "Fahrzeug nicht vorhanden!"
				})

			anmeldungen = Anmeldung.find({"fahrzeugId": fahrzeug.data["id"]}, 10000)
			for a in anmeldungen:
				a.delete()

			fahrzeug.delete()

			return json.dumps({
				"success": True
			})

		return json.dumps({
			"success": False,
			"message": "Aktion nicht erlaubt!"
		})
示例#3
0
文件: fahrzeuge.py 项目: Heddy147/ias
	def GET(self, id=None):
		super(Fahrzeuge, self).check_login()
		if self.user_allowed:
			if id is None:
				if User.logged_in_user.data["rolle"] == "leitung":
					fahrzeuge = Fahrzeug.find(None, 100000)
				else:
					fahrzeuge = Fahrzeug.find({"benutzerId": User.logged_in_user.data["id"]}, 100000)
			else:
				if User.logged_in_user.data["rolle"] == "leitung":
					fahrzeuge = Fahrzeug.find({"id": id})
				else:
					fahrzeuge = Fahrzeug.find({"benutzerId": User.logged_in_user.data["id"], "id": id})

			return json.dumps({
				"success": True,
				"fahrzeuge": ModelAbstract.get_data_of_objects(fahrzeuge)
			})

		return json.dumps({
			"success": False,
			"message": "Aktion nicht erlaubt!"
		})
示例#4
0
    def POST(self, rennId, fahrzeugId):
        super(Anmeldungen, self).check_login()
        if self.user_allowed:
            rennen = Rennen.find({"id": rennId})
            if rennen is None:
                return json.dumps({
                    "success": False,
                    "message": "Rennen nicht gefunden!"
                })
            fahrzeug = Fahrzeug.find({"id": fahrzeugId})
            if fahrzeug is None:
                return json.dumps({
                    "success": False,
                    "message": "Fahrzeug nicht gefunden!"
                })
            existingAnmeldung = Anmeldung.find({
                "fahrzeugId":
                fahrzeug.data["id"],
                "rennId":
                rennen.data["id"]
            })
            if existingAnmeldung is not None:
                return json.dumps({
                    "success":
                    False,
                    "message":
                    "Sie haben sich mit diesem Fahrzeug schon an diesem Rennen angemeldet!"
                })

            anmeldung = Anmeldung()
            anmeldung.data["rennId"] = rennId
            anmeldung.data["fahrzeugId"] = fahrzeugId
            anmeldung.data["benutzerId"] = User.logged_in_user.data["id"]

            if anmeldung.save():
                return json.dumps({"success": True, "data": anmeldung.data})
            else:
                return json.dumps({
                    "success": False,
                    "messages": anmeldung.required_fields_empty
                })

        return json.dumps({
            "success": False,
            "message": "Aktion nicht erlaubt!"
        })
示例#5
0
	def POST(
			self,
			rennId,
			fahrzeugId
	):
		super(Anmeldungen, self).check_login()
		if self.user_allowed:
			rennen = Rennen.find({"id": rennId})
			if rennen is None:
				return json.dumps({
					"success": False,
					"message": "Rennen nicht gefunden!"
				})
			fahrzeug = Fahrzeug.find({"id": fahrzeugId})
			if fahrzeug is None:
				return json.dumps({
					"success": False,
					"message": "Fahrzeug nicht gefunden!"
				})
			existingAnmeldung = Anmeldung.find({"fahrzeugId": fahrzeug.data["id"], "rennId": rennen.data["id"]})
			if existingAnmeldung is not None:
				return json.dumps({
					"success": False,
					"message": "Sie haben sich mit diesem Fahrzeug schon an diesem Rennen angemeldet!"
				})

			anmeldung = Anmeldung()
			anmeldung.data["rennId"] = rennId
			anmeldung.data["fahrzeugId"] = fahrzeugId
			anmeldung.data["benutzerId"] = User.logged_in_user.data["id"]

			if anmeldung.save():
				return json.dumps({
					"success": True,
					"data": anmeldung.data
				})
			else:
				return json.dumps({
					"success": False,
					"messages": anmeldung.required_fields_empty
				})

		return json.dumps({
			"success": False,
			"message": "Aktion nicht erlaubt!"
		})
示例#6
0
文件: Anmeldung.py 项目: Heddy147/ias
    def after_find(self):
        fahrzeug = Fahrzeug.find({"id": self.data["fahrzeugId"]})

        if fahrzeug is not None:
            self.data["fahrzeug"] = fahrzeug.data

            fahrer = Person.find({"id": self.data["fahrzeug"]["fahrerId"]})
            beifahrer = Person.find(
                {"id": self.data["fahrzeug"]["beifahrerId"]})
            mechaniker = Person.find(
                {"id": self.data["fahrzeug"]["mechanikerId"]})

            if fahrer is not None:
                self.data["fahrer"] = fahrer.data

            if beifahrer is not None:
                self.data["beifahrer"] = beifahrer.data

            if mechaniker is not None:
                self.data["mechaniker"] = mechaniker.data
示例#7
0
    def DELETE(self, id):
        super(Fahrzeuge, self).check_login()
        if self.user_allowed:
            fahrzeug = Fahrzeug.find({"id": id})

            if fahrzeug is None:
                return json.dumps({
                    "success": False,
                    "messages": "Fahrzeug nicht vorhanden!"
                })

            anmeldungen = Anmeldung.find({"fahrzeugId": fahrzeug.data["id"]},
                                         10000)
            for a in anmeldungen:
                a.delete()

            fahrzeug.delete()

            return json.dumps({"success": True})

        return json.dumps({
            "success": False,
            "message": "Aktion nicht erlaubt!"
        })
示例#8
0
	def POST(
			self,
			**kw
	):
		super(Qualiergebnisse, self).check_login()
		if self.user_allowed:
			if "rennId" not in kw:
				return json.dumps({
					"success": False,
					"message": "Rennen nicht vorhanden!"
				})

			rennId = kw["rennId"]

			rennen = Rennen.find({"id": rennId})

			if rennen is None:
				return json.dumps({
					"success": False,
					"message": "Rennen nicht vorhanden!"
				})

			real_erg = []
			not_qualified_erg = []

			anmeldungen = Anmeldung.find({"rennId": rennId}, 100000)

			for anmeldung in anmeldungen:
				status_key = "ergebnisse[" + anmeldung.data["id"] + "][status]"
				zeit_in_string_key = "ergebnisse[" + anmeldung.data["id"] + "][zeit_in_string]"
				zeit_in_millisekunden_key = "ergebnisse[" + anmeldung.data["id"] + "][zeit_in_millisekunden]"

				if status_key not in kw or zeit_in_string_key not in kw or zeit_in_millisekunden_key not in kw:
					return json.dumps({
						"success": False,
						"message": "Jedes Fahrzeug muss eine Zeit erhalten oder disqualifiziert werden!"
					})

				fahrzeug = Fahrzeug.find({"id": anmeldung.data["fahrzeugId"]})

				fahrzeugklasse = Fahrzeugklasse.find({"id": fahrzeug.data["typ"]})
				if fahrzeugklasse is None:
					return json.dumps({
						"success": False,
						"message": "Eines der Fahrzeuge ist keiner Klasse angehörig und kann somit nicht am Rennen teilnehmen!"
					})

				status = kw[status_key]
				if int(status) is not 2:
					if int(kw[zeit_in_millisekunden_key]) <= int(fahrzeugklasse.data["zeit_in_millisekunden"]):
						status = 1
					else:
						status = 0

				if int(status) is not 1:
					not_qualified_erg.append({
						"fahrzeugId": anmeldung.data["fahrzeugId"],
						"status": status
					})
				else:
					real_erg.append({
						"fahrzeugId": anmeldung.data["fahrzeugId"],
						"zeit_in_string": kw[zeit_in_string_key],
						"zeit_in_millisekunden": kw[zeit_in_millisekunden_key],
						"status": status,
						"anmeldeId": anmeldung.data["id"]
					})

			sorted_erg = sorted(real_erg, key=self.sort_ergebnisse)
			platz = 1
			for ergebnis in sorted_erg:
				anmeldung = Anmeldung.find({"id": ergebnis["anmeldeId"]})
				anmeldung.data["quali_platzierung"] = platz
				anmeldung.save()

				qualiergebnis = Qualiergebnis()
				qualiergebnis.data["zeit"] = ergebnis["zeit_in_string"]
				qualiergebnis.data["status"] = 1
				qualiergebnis.data["rennId"] = rennId
				qualiergebnis.data["fahrzeugId"] = ergebnis["fahrzeugId"]
				qualiergebnis.data["platzierung"] = platz
				qualiergebnis.save()
				platz += 1

			for nq_ergebnis in not_qualified_erg:
				qualiergebnis = Qualiergebnis()
				qualiergebnis.data["zeit"] = "60:60:999"
				qualiergebnis.data["status"] = nq_ergebnis["status"]
				qualiergebnis.data["rennId"] = rennId
				qualiergebnis.data["fahrzeugId"] = nq_ergebnis["fahrzeugId"]
				qualiergebnis.data["platzierung"] = 999
				qualiergebnis.save()

			return json.dumps({
				"success": True
			})

		return json.dumps({
			"success": False,
			"message": "Aktion nicht erlaubt!"
		})
示例#9
0
    def POST(self, **kw):
        super(Qualiergebnisse, self).check_login()
        if self.user_allowed:
            if "rennId" not in kw:
                return json.dumps({
                    "success": False,
                    "message": "Rennen nicht vorhanden!"
                })

            rennId = kw["rennId"]

            rennen = Rennen.find({"id": rennId})

            if rennen is None:
                return json.dumps({
                    "success": False,
                    "message": "Rennen nicht vorhanden!"
                })

            real_erg = []
            not_qualified_erg = []

            anmeldungen = Anmeldung.find({"rennId": rennId}, 100000)

            for anmeldung in anmeldungen:
                status_key = "ergebnisse[" + anmeldung.data["id"] + "][status]"
                zeit_in_string_key = "ergebnisse[" + anmeldung.data[
                    "id"] + "][zeit_in_string]"
                zeit_in_millisekunden_key = "ergebnisse[" + anmeldung.data[
                    "id"] + "][zeit_in_millisekunden]"

                if status_key not in kw or zeit_in_string_key not in kw or zeit_in_millisekunden_key not in kw:
                    return json.dumps({
                        "success":
                        False,
                        "message":
                        "Jedes Fahrzeug muss eine Zeit erhalten oder disqualifiziert werden!"
                    })

                fahrzeug = Fahrzeug.find({"id": anmeldung.data["fahrzeugId"]})

                fahrzeugklasse = Fahrzeugklasse.find(
                    {"id": fahrzeug.data["typ"]})
                if fahrzeugklasse is None:
                    return json.dumps({
                        "success":
                        False,
                        "message":
                        "Eines der Fahrzeuge ist keiner Klasse angehörig und kann somit nicht am Rennen teilnehmen!"
                    })

                status = kw[status_key]
                if int(status) is not 2:
                    if int(kw[zeit_in_millisekunden_key]) <= int(
                            fahrzeugklasse.data["zeit_in_millisekunden"]):
                        status = 1
                    else:
                        status = 0

                if int(status) is not 1:
                    not_qualified_erg.append({
                        "fahrzeugId":
                        anmeldung.data["fahrzeugId"],
                        "status":
                        status
                    })
                else:
                    real_erg.append({
                        "fahrzeugId":
                        anmeldung.data["fahrzeugId"],
                        "zeit_in_string":
                        kw[zeit_in_string_key],
                        "zeit_in_millisekunden":
                        kw[zeit_in_millisekunden_key],
                        "status":
                        status,
                        "anmeldeId":
                        anmeldung.data["id"]
                    })

            sorted_erg = sorted(real_erg, key=self.sort_ergebnisse)
            platz = 1
            for ergebnis in sorted_erg:
                anmeldung = Anmeldung.find({"id": ergebnis["anmeldeId"]})
                anmeldung.data["quali_platzierung"] = platz
                anmeldung.save()

                qualiergebnis = Qualiergebnis()
                qualiergebnis.data["zeit"] = ergebnis["zeit_in_string"]
                qualiergebnis.data["status"] = 1
                qualiergebnis.data["rennId"] = rennId
                qualiergebnis.data["fahrzeugId"] = ergebnis["fahrzeugId"]
                qualiergebnis.data["platzierung"] = platz
                qualiergebnis.save()
                platz += 1

            for nq_ergebnis in not_qualified_erg:
                qualiergebnis = Qualiergebnis()
                qualiergebnis.data["zeit"] = "60:60:999"
                qualiergebnis.data["status"] = nq_ergebnis["status"]
                qualiergebnis.data["rennId"] = rennId
                qualiergebnis.data["fahrzeugId"] = nq_ergebnis["fahrzeugId"]
                qualiergebnis.data["platzierung"] = 999
                qualiergebnis.save()

            return json.dumps({"success": True})

        return json.dumps({
            "success": False,
            "message": "Aktion nicht erlaubt!"
        })
示例#10
0
文件: fahrzeuge.py 项目: Heddy147/ias
	def POST(
			self,
			marke,
			typ,
			baujahr,
			hubraum,
			leistung,
			beschreibung,
			kennzeichen,
			fahrerId,
			beifahrerId,
			mechanikerId
	):
		super(Fahrzeuge, self).check_login()
		if self.user_allowed:
			fahrzeug = Fahrzeug()
			fahrzeug.data["benutzerId"] = User.logged_in_user.data["id"]
			fahrzeug.data["marke"] = marke
			fahrzeug.data["baujahr"] = baujahr
			fahrzeug.data["hubraum"] = hubraum
			fahrzeug.data["leistung"] = leistung
			fahrzeug.data["beschreibung"] = beschreibung
			fahrzeug.data["kennzeichen"] = kennzeichen

			### Müssen noch auf Korrektheit ueberprueft werden
			fahrzeugklasse = Fahrzeugklasse.find({"id": typ})
			if fahrzeugklasse is None and len(typ) > 0:
				return json.dumps({
					"success": False,
					"message": "Fahrzeugklasse existiert nicht!"
				})
			fahrzeug.data["typ"] = typ

			fahrer = Person.find({"id": fahrerId})
			if fahrer is None and len(fahrerId) > 0:
				return json.dumps({
					"success": False,
					"message": "Fahrer existiert nicht!"
				})
			fahrzeug.data["fahrerId"] = fahrerId

			beifahrer = Person.find({"id": beifahrerId})
			if beifahrer is None and len(beifahrerId) > 0:
				return json.dumps({
					"success": False,
					"message": "Beifahrer existiert nicht!"
				})
			fahrzeug.data["beifahrerId"] = beifahrerId

			mechaniker = Person.find({"id": mechanikerId})
			if mechaniker is None and len(mechanikerId) > 0:
				return json.dumps({
					"success": False,
					"message": "Mechaniker existiert nicht!"
				})
			fahrzeug.data["mechanikerId"] = mechanikerId

			if fahrzeug.save():
				return json.dumps({
					"success": True,
					"data": fahrzeug.data
				})
			else:
				return json.dumps({
					"success": False,
					"messages": fahrzeug.required_fields_empty
				})

		return json.dumps({
			"success": False,
			"message": "Aktion nicht erlaubt!"
		})
示例#11
0
	def POST(
			self,
			**kw
	):
		super(Rennergebnisse, self).check_login()
		if self.user_allowed:
			if "rennId" not in kw:
				return json.dumps({
					"success": False,
					"message": "Rennen nicht vorhanden!"
				})

			rennId = kw["rennId"]

			rennen = Rennen.find({"id": rennId})

			if rennen is None:
				return json.dumps({
					"success": False,
					"message": "Rennen nicht vorhanden!"
				})

			if "ergebnisse" not in kw:
				return json.dumps({
					"success": False,
					"message": "Irgendetwas ist schief gelaufen. Versuchen Sie es erneut."
				})

			ergebnisse = kw["ergebnisse"]

			stationen = Station.find({"rennId": rennId}, 100000)
			anmeldungen = Anmeldung.find({"rennId": rennId}, 100000)
			ergebnisse_json = json.loads(ergebnisse)

			real_erg = []
			renn_erg_asso = {}
			renn_erg = []
			renn_erg_not_correct = []
			disquali_erg = []

			for anmeldung in anmeldungen:
				if anmeldung.data["id"] not in ergebnisse_json:
					return json.dumps({
						"success": False,
						"message": "Jedes Fahrzeug muss Zeiten erhalten oder disqualifiziert werden! 1"
					})

				fahrzeug = Fahrzeug.find({"id": anmeldung.data["fahrzeugId"]})

				fahrzeugklasse = Fahrzeugklasse.find({"id": fahrzeug.data["typ"]})
				if fahrzeugklasse is None:
					return json.dumps({
						"success": False,
						"message": "Eines der Fahrzeuge ist keiner Klasse angehörig und kann somit nicht am Rennen teilnehmen!"
					})

				if int(ergebnisse_json[anmeldung.data["id"]]["disquali"]) == 0:
					for station in stationen:
						if station.data["id"] not in ergebnisse_json[anmeldung.data["id"]]["stationsErgebnisse"]:
							return json.dumps({
								"success": False,
								"message": "Jedes Fahrzeug muss Zeiten erhalten oder disqualifiziert werden! 2"
							})

						real_erg.append({
							"fahrzeugId": anmeldung.data["fahrzeugId"],
							"zeit_in_string": ergebnisse_json[anmeldung.data["id"]]["stationsErgebnisse"][station.data["id"]]["zeit_in_string"],
							"zeit_in_millisekunden": ergebnisse_json[anmeldung.data["id"]]["stationsErgebnisse"][station.data["id"]]["zeit_in_millisekunden"],
							"stationId": station.data["id"]
						})

						if anmeldung.data["id"] not in renn_erg_asso:
							renn_erg_asso[anmeldung.data["id"]] = {
								"zeit_in_millisekunden": int(ergebnisse_json[anmeldung.data["id"]]["stationsErgebnisse"][station.data["id"]]["zeit_in_millisekunden"]),
								"fahrzeugId": anmeldung.data["fahrzeugId"]
							}
						else:
							renn_erg_asso[anmeldung.data["id"]]["zeit_in_millisekunden"] += int(ergebnisse_json[anmeldung.data["id"]]["stationsErgebnisse"][station.data["id"]]["zeit_in_millisekunden"])
					renn_erg_asso[anmeldung.data["id"]]["stationen_ok"] = int(ergebnisse_json[anmeldung.data["id"]]["stationen_ok"])
				else:
					disquali_erg.append({
						"fahrzeugId": anmeldung.data["fahrzeugId"]
					})
					break

			for fId in renn_erg_asso:
				if int(renn_erg_asso[fId]["stationen_ok"]) is 0:
					renn_erg_not_correct.append({
						"fahrzeugId": renn_erg_asso[fId]["fahrzeugId"]
					})
				else:
					minuten = int(renn_erg_asso[fId]["zeit_in_millisekunden"] / 60000)
					rest = renn_erg_asso[fId]["zeit_in_millisekunden"] - (minuten * 60000)

					if rest > 9999:
						sekunden = str(rest)[:2]
					else:
						sekunden = str(rest)[:1]

					millisekunden = str(rest)[-3:]
					minuten = str(minuten)

					if len(minuten) < 2:
						minuten = "0" + minuten

					if len(sekunden) < 2:
						sekunden = "0" + sekunden

					renn_erg.append({
						"fahrzeugId": renn_erg_asso[fId]["fahrzeugId"],
						"zeit_in_string": str(minuten) + ":" + str(sekunden) + ":" + str(millisekunden),
						"zeit_in_millisekunden": renn_erg_asso[fId]["zeit_in_millisekunden"]
					})

			sorted_erg = sorted(renn_erg, key=self.sort_ergebnisse)
			platz = 1
			for ergebnis in sorted_erg:
				rennergebnis = Rennergebnis()
				rennergebnis.data["zeit"] = ergebnis["zeit_in_string"]
				rennergebnis.data["fahrzeugId"] = ergebnis["fahrzeugId"]
				rennergebnis.data["rennId"] = rennId
				rennergebnis.data["status"] = 1
				rennergebnis.data["platzierung"] = platz
				rennergebnis.data["stationen_ok"] = 1
				rennergebnis.save()
				platz += 1

			for ergebnis in disquali_erg:
				rennergebnis = Rennergebnis()
				rennergebnis.data["zeit"] = "60:60:999"
				rennergebnis.data["fahrzeugId"] = ergebnis["fahrzeugId"]
				rennergebnis.data["rennId"] = rennId
				rennergebnis.data["status"] = 0
				rennergebnis.data["platzierung"] = 999
				rennergebnis.data["stationen_ok"] = 1
				rennergebnis.save()

			for ergebnis in renn_erg_not_correct:
				rennergebnis = Rennergebnis()
				rennergebnis.data["zeit"] = "60:60:999"
				rennergebnis.data["fahrzeugId"] = ergebnis["fahrzeugId"]
				rennergebnis.data["rennId"] = rennId
				rennergebnis.data["status"] = 1
				rennergebnis.data["platzierung"] = 999
				rennergebnis.data["stationen_ok"] = 0
				rennergebnis.save()

			rennen.data["beendet"] = 1
			rennen.save()

			return json.dumps({
				"success": True
			})

		return json.dumps({
			"success": False,
			"message": "Aktion nicht erlaubt!"
		})
示例#12
0
    def POST(self, marke, typ, baujahr, hubraum, leistung, beschreibung,
             kennzeichen, fahrerId, beifahrerId, mechanikerId):
        super(Fahrzeuge, self).check_login()
        if self.user_allowed:
            fahrzeug = Fahrzeug()
            fahrzeug.data["benutzerId"] = User.logged_in_user.data["id"]
            fahrzeug.data["marke"] = marke
            fahrzeug.data["baujahr"] = baujahr
            fahrzeug.data["hubraum"] = hubraum
            fahrzeug.data["leistung"] = leistung
            fahrzeug.data["beschreibung"] = beschreibung
            fahrzeug.data["kennzeichen"] = kennzeichen

            ### Müssen noch auf Korrektheit ueberprueft werden
            fahrzeugklasse = Fahrzeugklasse.find({"id": typ})
            if fahrzeugklasse is None and len(typ) > 0:
                return json.dumps({
                    "success": False,
                    "message": "Fahrzeugklasse existiert nicht!"
                })
            fahrzeug.data["typ"] = typ

            fahrer = Person.find({"id": fahrerId})
            if fahrer is None and len(fahrerId) > 0:
                return json.dumps({
                    "success": False,
                    "message": "Fahrer existiert nicht!"
                })
            fahrzeug.data["fahrerId"] = fahrerId

            beifahrer = Person.find({"id": beifahrerId})
            if beifahrer is None and len(beifahrerId) > 0:
                return json.dumps({
                    "success": False,
                    "message": "Beifahrer existiert nicht!"
                })
            fahrzeug.data["beifahrerId"] = beifahrerId

            mechaniker = Person.find({"id": mechanikerId})
            if mechaniker is None and len(mechanikerId) > 0:
                return json.dumps({
                    "success": False,
                    "message": "Mechaniker existiert nicht!"
                })
            fahrzeug.data["mechanikerId"] = mechanikerId

            if fahrzeug.save():
                return json.dumps({"success": True, "data": fahrzeug.data})
            else:
                return json.dumps({
                    "success": False,
                    "messages": fahrzeug.required_fields_empty
                })

        return json.dumps({
            "success": False,
            "message": "Aktion nicht erlaubt!"
        })