Exemplo n.º 1
0
Arquivo: party.py Projeto: drizzd/germ
	def __init__(self):
		from users import rank_check
		from germ.lib import chk

		ent_table.__init__(self, attributes = [
			('name', string(label.party, perm.all, '', 20, [chk.name])),
			('status', choice(label.status, self.opt_status, perm.edit)),
			('date', date(label.date, perm.all)),
			('organizer', string(label.organizer, perm.all, '', 10)),
			('location', string(label.location, perm.all, '', 128)),
			('entry_fee_advance', string(label.entry_fee_advance, perm.all, '', 16)),
			('entry_fee', string(label.entry_fee, perm.all, '', 16))
			],
			primary_keys = [ 'name' ],
			relations = [
				relation(
			table =	'users',
			keys = {	'organizer':	'username' },
			cond = { 'all':	"users.rank > 1" }) ],
			item_txt = {
				'edit': {
					'en': 'Party Settings',
					'de': 'Party Einstellungen' },
				'submit': {
					'en': 'Add Party',
					'de': 'Party hinzuf"ugen' },
				'view': {
					'en': 'View Parties',
					'de': 'Partys ansehen' },
				'delete': {
					'en': 'Delete Party',
					'de': 'Party l"oschen' } },
			perm = {
				'all':	rank_check(self, 1),
				'view':	True } )
Exemplo n.º 2
0
Arquivo: gamer.py Projeto: drizzd/germ
	def perm_paid(self, attrs):
		if not self.pks_locked():
			return True

		if self.has_paid():
			return False

		from users import rank_check

		if rank_check(self, 1)():
			return True
Exemplo n.º 3
0
	def __init__(self):
		opt_mode = [
			{ 'en': 'manual', 'de': 'manuell' },
			{ 'en': 'single elimination' },
			{ 'en': 'double elimination' } ]

		opt_phase = [
			# 1
			{ 'en': 'announced' ,
			  'de': 'angek"undigt' },
			# 2
			{ 'en': 'in preparation',
			  'de': 'in Vorbereitung' },
			# 3
			{ 'en': 'started',
			  'de': 'gestartet' },
			# 4
			{ 'en': 'finished',
			  'de': 'beendet' } ]

		self.__prev_phase = None
		self.__next_phase = None
		self.__teams = None

		from users import rank_check

		ent_table.__init__(self, attributes = [
			('name', string(label.tourney, perm.all + ['delete'], None, 32)),
			('party', string(label.party, perm.all + ['delete'], '', 20)),
			('organizer', string(label.organizer, perm.all, '', 10)),
			('mode', choice(label.tourney_mode, opt_mode, perm.all)),
			('phase', choice(label.tourney_phase, opt_phase, perm.edit)),
			('teamsize', int(label.teamsize, perm.all, 1, 2)) ],
			primary_keys = [ 'party', 'name' ],
			relations = [
				relation(
			table = 'tourney',
			alias = 'tn',
			keys = {	'party':	'party',
						'name':		'name' },
			cond =	{
				'delete':	"tn.phase IN (0)",
				'edit':		"tn.phase IN (0, 1)" },
			outer_join = "LEFT" ),
				relation(
			table =	'users',
			alias = 'orga',
			keys =	{ 'organizer':		'username' },
			cond = {	'all':	"orga.rank > 0" } ),
				relation(
			table =	'party',
			keys =	{ 'party':	'name' },
			# party must be on
			cond =	{
				'submit':	"party.status IN (1, 2)",
				'edit':		"party.status IN (1, 2)" } )
				],
			item_txt = {
				'edit': {
					'en': 'Tourney Settings',
					'de': 'Turniereinstellungen' },
				'submit': {
					'en': 'New Tourney',
					'de': 'Turnier hinzuf"ugen' },
				'view': {
					'en': 'Tourneys',
					'de': 'Turniere' },
				'list': {
					'en': 'Tourneys',
					'de': 'Turniere' },
				'delete': {
					'en': 'Delete Tourney',
					'de': 'Turnier l"oschen' } },
			perm = {
				'all':	rank_check(self, 2),
				'view':	True,
				'list': True } )
Exemplo n.º 4
0
	def __init__(self):
		opt_bracket = [
			{ 'en': 'Winner' },
			{ 'en': 'Loser' } ]

		opt_status = [
			{ 'en': 'pending',
			  'de': 'l"auft' },
			{ 'en': 'Team 1 wins',
			  'de': 'Team 1 gewinnt' },
			{ 'en': 'Team 2 wins',
			  'de': 'Team 2 gewinnt' } ]

		from users import rank_check

		ent_table.__init__(self, attributes = [
			('party', string(label.party, perm.all, '', 20)),
			('tourney', string(label.tourney, perm.all, '', 32)),
			('round', attr_int(label.round, perm.edit)),
			('stage', attr_int(label.stage, perm.edit)),
			('bracket', choice(label.bracket, opt_bracket, perm.edit)),
			('id', attr_int(label.id, perm.edit)),
			('team1', string(label.team1, perm.view, '', 32)),
			('team2', string(label.team2, perm.view, '', 32)),
			('status', choice(label.status, opt_status, perm.edit))
			],
			primary_keys = [ 'party', 'tourney',
				'round', 'stage', 'bracket', 'id' ],
			relations = [
				relation(
			table = 'double_elimination',
			alias = 't1',
			keys = {	'party':	'party',
						'tourney':	'tourney',
						'round':	'round',
						'stage':	'stage',
						'bracket':	'bracket',
						'id':		'id' },
			# TODO: Is there a neater way to do this and can we get rid of the
			# nested SELECT?
			cond = {	'edit':
					"(t1.bracket = 1 AND (2*t1.round + t1.stage) = " \
					"(SELECT MAX(2*t2.round + t2.stage) " \
					"FROM double_elimination AS t2 " \
					"WHERE t1.party = t2.party AND t1.tourney = t2.tourney " \
						"AND t1.bracket = t2.bracket)) OR " \
					"(t1.bracket = 0 AND (2*t1.round + t1.stage) = " \
					"(SELECT MAX(2*t2.round + t2.stage) " \
					"FROM double_elimination AS t2 " \
					"WHERE t1.party = t2.party AND t1.tourney = t2.tourney " \
						"AND t1.bracket = t2.bracket))" } ),
				relation(
			table =	'team',
			alias = 'tm1',
			keys = {	'party':	'party',
						'tourney':	'tourney',
						'team1':	'name' } ),
				relation(
			table =	'team',
			alias = 'tm2',
			keys = {	'party':	'party',
						'tourney':	'tourney',
						'team2':	'name' } ) ],
			perm = {
				'edit':	rank_check(self, 2),
				'view': True },
			item_txt = {
				'edit': {
					'en': 'Enter game results',
					'de': 'Spielergebnisse eintragen' },
				'submit': {
					'en': 'Add game',
					'de': 'Spiel hinzuf"ugen' },
				'list': {
					'en': 'Game results',
					'de': 'Spielergebnisse' } }
				)