Beispiel #1
0
    def get(self):
        # lookup user's auth info
        user_info = User.get_by_id(long(self.user_id))

        # look up user's groups
        groups = GroupMembers.get_user_groups(user_info.key)

        # create an object with group_id and member counts
        group_count = {}
        for group in groups:
            # get the member counts
            count = GroupMembers.get_group_user_count(group.key)
            group_count[group.key.id()] = count

        # setup channel to do page refresh
        channel_token = user_info.key.urlsafe()
        refresh_channel = channel.create_channel(channel_token)

        # params build out
        params = {
            'groups': groups,
            'group_count': group_count,
            'refresh_channel': refresh_channel,
            'channel_token': channel_token
        }

        return self.render_template('groups/groups.html', **params)
Beispiel #2
0
    def get(self):
        # lookup user's auth info
        user_info = User.get_by_id(long(self.user_id))

        # load token and produce form page or show instructions
        if self.request.get('token'):
            self.form.token.data = self.request.get('token')

            # group choices pulldown
            self.form.group.choices = []

            # add list of user's groups, if any
            groups = GroupMembers.get_user_groups(user_info.key)
            for group in groups:
                self.form.group.choices.insert(0, (group.key.id(), group.name))

            # public group
            self.form.group.choices.insert(0, ('public', "Public"))

            # render new appliance page
            parms = {
                'gform': self.gform,
                'appliance_token': self.request.get('token')
            }
            return self.render_template('appliance/new.html', **parms)

        else:
            # render instructions
            return self.render_template('appliance/instructions.html')
Beispiel #3
0
	def get(self):
		# lookup user's auth info
		user_info = User.get_by_id(long(self.user_id))

		# look up user's groups
		groups = GroupMembers.get_user_groups(user_info.key)

		# create an object with group_id and member counts
		group_count = {}
		for group in groups:
			# get the member counts
			count = GroupMembers.get_group_user_count(group.key)
			group_count[group.key.id()] = count

		# setup channel to do page refresh
		channel_token = user_info.key.urlsafe()
		refresh_channel = channel.create_channel(channel_token)

		# params build out
		params = {
			'groups': groups,
			'group_count': group_count,
			'refresh_channel': refresh_channel,
			'channel_token': channel_token 
		}

		return self.render_template('groups/list.html', **params)
Beispiel #4
0
    def get(self):
        # lookup user's auth info
        user_info = User.get_by_id(long(self.user_id))

        # load token and produce form page or show instructions
        if self.request.get("token"):
            self.form.token.data = self.request.get("token")

            # group choices pulldown
            self.form.group.choices = []

            # add list of user's groups, if any
            groups = GroupMembers.get_user_groups(user_info.key)
            for group in groups:
                self.form.group.choices.insert(0, (group.key.id(), group.name))

                # public group
            self.form.group.choices.insert(0, ("public", "Public"))

            # render new appliance page
            parms = {"gform": self.gform, "appliance_token": self.request.get("token")}
            return self.render_template("appliance/new.html", **parms)

        else:
            # render instructions
            return self.render_template("appliance/instructions.html")
Beispiel #5
0
    def get(self, appliance_id=None):
        # lookup user's auth info
        user_info = User.get_by_id(long(self.user_id))

        # lookup the appliance
        appliance = Appliance.get_by_id(long(appliance_id))

        # group choices pulldown
        self.form.group.choices = []

        # add list of user's groups, if any
        groups = GroupMembers.get_user_groups(user_info.key)
        for group in groups:
            self.form.group.choices.insert(0, (group.key.id(), group.name))

            # public group
        self.form.group.choices.insert(0, ("public", "Public"))

        self.form.name.data = appliance.name
        self.form.token.data = appliance.token

        # hacking the form pulldown with javascript because I'm in a hurry
        if appliance.group:
            group_id = appliance.group.get().key.id()
        else:
            group_id = "public"

            # this should work, but doesn't - see javascript in appliance_edit.html
        self.form.group.data = group_id

        # render new appliance page
        parms = {"appliance": appliance, "group_id": group_id, "gform": self.gform}
        return self.render_template("appliance/edit.html", **parms)
Beispiel #6
0
	def get(self, appliance_id = None):
		# lookup user's auth info
		user_info = User.get_by_id(long(self.user_id))

		# lookup the appliance
		appliance = Appliance.get_by_id(long(appliance_id))

		# group choices pulldown
		self.form.group.choices=[]
		
		# add list of user's groups, if any
		groups = GroupMembers.get_user_groups(user_info.key)
		for group in groups:
			print group.key.id()
			self.form.group.choices.insert(0, (group.key.id(), group.name))

		# public group
		self.form.group.choices.insert(0, ('public', "Public"))

		self.form.name.data = appliance.name
		self.form.token.data = appliance.token

		# hacking the form pulldown with javascript because I'm in a hurry
		if appliance.group:
			group_id = appliance.group.get().key.id()
		else:
			group_id = "public"

		# this should work, but doesn't - see javascript in appliance_edit.html
		self.form.group.data = group_id

		# render new appliance page
		parms = {
			'appliance': appliance,
			'group_id': group_id,
			'gform': self.gform
		}
		return self.render_template('appliance/appliance_edit.html', **parms)
Beispiel #7
0
    def post(self):
        # lookup user's auth info
        user_info = User.get_by_id(long(self.user_id))

        # initialize form choices for group
        self.form.group.choices = []

        # add list of user's groups, if any
        groups = GroupMembers.get_user_groups(user_info.key)
        for group in groups:
            self.form.group.choices.insert(0,
                                           (str(group.key.id()), group.name))

        # public group
        self.form.group.choices.insert(0, ('public', "Public"))

        # check if we are getting a custom group entry
        if self.form.group.data == "custom":
            # check if the group exists
            if Group.get_by_name(self.form.custom.data.strip()):
                self.add_message("A group with that name already exists!",
                                 "error")
                return self.redirect_to('account-appliances')

            # make the new group
            group = Group(name=self.form.custom.data.strip(),
                          owner=user_info.key)
            group.put()
            group_key = group.key

            # create the group member entry
            groupmember = GroupMembers(
                group=group_key,
                member=user_info.key,
                invitor=user_info.key,  # same same
                active=True)
            groupmember.put()

            # hack the form with new group
            self.form.group.choices.insert(0, ('custom', "Custom"))
        else:
            # grab an existing group
            if self.form.group.data.strip() == 'public':
                # no group for public appliances
                group_key = None
            else:
                # check membership
                group = Group.get_by_id(int(self.form.group.data.strip()))
                if GroupMembers.is_member(user_info.key, group.key):
                    group_key = group.key
                else:
                    group_key = None

        # check what was returned from the rest of the form validates
        if not self.form.validate():
            self.add_message("The new appliance form did not validate.",
                             "error")
            return self.get()

        # load form values
        name = self.form.name.data.strip()
        token = self.form.token.data.strip()

        # check if we have it already - all that work bitches?
        if Appliance.get_by_token(token):
            self.add_message("An appliance with that token already exists!",
                             "error")
            return self.redirect_to('account-appliances')

        # save the new appliance in our database
        appliance = Appliance(name=name,
                              token=token,
                              group=group_key,
                              owner=user_info.key)
        appliance.put()

        # log to alert
        self.add_message("Appliance %s successfully created!" % name,
                         "success")

        # give it a few seconds to update db, then redirect
        time.sleep(1)
        return self.redirect_to('account-appliances')
Beispiel #8
0
    def post(self):
        # lookup user's auth info
        user_info = User.get_by_id(long(self.user_id))

        # initialize form choices for group
        self.form.group.choices = []

        # add list of user's groups, if any
        groups = GroupMembers.get_user_groups(user_info.key)
        for group in groups:
            self.form.group.choices.insert(0, (str(group.key.id()), group.name))

            # public group
        self.form.group.choices.insert(0, ("public", "Public"))

        # check if we are getting a custom group entry
        if self.form.group.data == "custom":
            # check if the group exists
            if Group.get_by_name(self.form.custom.data.strip()):
                self.add_message("A group with that name already exists!", "error")
                return self.redirect_to("account-appliances")

                # make the new group
            group = Group(name=self.form.custom.data.strip(), owner=user_info.key)
            group.put()
            group_key = group.key

            # create the group member entry
            groupmember = GroupMembers(
                group=group_key, member=user_info.key, invitor=user_info.key, active=True  # same same
            )
            groupmember.put()

            # hack the form with new group
            self.form.group.choices.insert(0, ("custom", "Custom"))
        else:
            # grab an existing group
            if self.form.group.data.strip() == "public":
                # no group for public appliances
                group_key = None
            else:
                # check membership
                group = Group.get_by_id(int(self.form.group.data.strip()))
                if GroupMembers.is_member(user_info.key, group.key):
                    group_key = group.key
                else:
                    group_key = None

                    # check what was returned from the rest of the form validates
        if not self.form.validate():
            self.add_message("The new appliance form did not validate.", "error")
            return self.get()

            # load form values
        name = self.form.name.data.strip()
        token = self.form.token.data.strip()

        # check if we have it already - all that work bitches?
        if Appliance.get_by_token(token):
            self.add_message("An appliance with that token already exists!", "error")
            return self.redirect_to("account-appliances")

            # save the new appliance in our database
        appliance = Appliance(name=name, token=token, group=group_key, owner=user_info.key)
        appliance.put()

        # log to alert
        self.add_message("Appliance %s successfully created!" % name, "success")

        # give it a few seconds to update db, then redirect
        time.sleep(1)
        return self.redirect_to("account-appliances")