def join(self): projectId = self.request('project_id') description = self.request('message') if (not self.user): log.error("*** join submitted w/o logged in user") return False elif (not projectId): log.error("*** join submitted w/o logged project id") return False elif (util.strNullOrEmpty(description)): log.error("*** join submitted w/o idea") return False else: isJoined = mProject.join(self.db, projectId, self.user.id) if (isJoined): project = mProject.Project(self.db, projectId) # create the user's "hello there" idea and add to project newIdeaId = mIdea.createIdea(self.db, description, project.data.location_id, 'web', self.user.id, self.user.email) if (newIdeaId): if (not mIdea.addIdeaToProject(self.db, newIdeaId, projectId)): log.error("*** new idea not created for user %s on joining project %s" % (self.user.id, projectId)) else: log.error("*** new idea not created for user %s on joining project %s" % (self.user.id, projectId)) # automatically insert any ideas attached to invites for this user and this project if (not mIdea.addInvitedIdeaToProject(self.db, projectId, self.user.id)): log.error("*** couldn't add invited idea to project for user %s on joining project %s" % (self.user.id, projectId)) # add a message to the queue about the join message = 'New Member! Your project now has %s total!' % project.data.num_members # email admin if (not mMessaging.emailProjectJoin(project.data.owner_email, projectId, project.data.title, self.user.id, mProject.userNameDisplay(self.user.firstName, self.user.lastName, self.user.affiliation, mProject.isFullLastName(self.user.groupMembershipBitmask)))): log.error("*** couldn't email admin on user_id = %s joining project %s" % (self.user.id, projectId)) if (not mProject.addMessage(self.db, projectId, message, 'join', self.user.id, newIdeaId)): log.error("*** new message not created for user %s on joining project %s" % (self.user.id, projectId)) return isJoined
def newIdea(self): if (self.request('main_text')): return False description = self.request('text') locationId = util.try_f(int, self.request('location_id'), -1) if (self.user): userId = self.user.id email = self.user.email else: userId = None email = self.request('email') ideaId = mIdea.createIdea(self.db, description, locationId, 'web', userId, email) if (ideaId): mMessaging.emailIdeaConfirmation( email, Config.get('email').get('from_address'), locationId) return ideaId else: return False return ideaId if ideaId else False
def receive(self): # TODO: could do more w/ validation if not sms.validate(self.request): return self.text('') phone = util.cleanUSPhone(self.request('From')) message = self.request('Body') userId = mUser.findUserByPhone(self.db, phone) if (not phone or not message): log.error( "*** sms received but idea not created. missing phone or message" ) else: if (message.lower() == 'stop'): return mMessaging.stopSMS(self.db, phone) else: if (mIdea.createIdea(self.db, message, -1, 'sms', userId, None, phone)): mMessaging.sendSMSConfirmation(self.db, phone) return True else: return False
def receive(self): # TODO: could do more w/ validation if not sms.validate(self.request): return self.text('') phone = util.cleanUSPhone(self.request('From')) message = self.request('Body') userId = mUser.findUserByPhone(self.db, phone) if (not phone or not message): log.error("*** sms received but idea not created. missing phone or message") else: if (message.lower() == 'stop'): return mMessaging.stopSMS(self.db, phone) else: if (mIdea.createIdea(self.db, message, -1, 'sms', userId, None, phone)): mMessaging.sendSMSConfirmation(self.db, phone) return True else: return False
def newIdea(self): if (self.request('main_text')): return False description = self.request('text') locationId = util.try_f(int, self.request('location_id'), -1) if (self.user): userId = self.user.id email = self.user.email else: userId = None email = self.request('email') ideaId = mIdea.createIdea(self.db, description, locationId, 'web', userId, email) if (ideaId): mMessaging.emailIdeaConfirmation(email, Config.get('email').get('from_address'), locationId) return ideaId else: return False return ideaId if ideaId else False
def join(self): projectId = self.request('project_id') description = self.request('message') if (not self.user): log.error("*** join submitted w/o logged in user") return False elif (not projectId): log.error("*** join submitted w/o logged project id") return False elif (util.strNullOrEmpty(description)): log.error("*** join submitted w/o idea") return False else: isJoined = mProject.join(self.db, projectId, self.user.id) if (isJoined): project = mProject.Project(self.db, projectId) # create the user's "hello there" idea and add to project newIdeaId = mIdea.createIdea(self.db, description, project.data.location_id, 'web', self.user.id, self.user.email) if (newIdeaId): if (not mIdea.addIdeaToProject(self.db, newIdeaId, projectId)): log.error( "*** new idea not created for user %s on joining project %s" % (self.user.id, projectId)) else: log.error( "*** new idea not created for user %s on joining project %s" % (self.user.id, projectId)) # automatically insert any ideas attached to invites for this user and this project if (not mIdea.addInvitedIdeaToProject(self.db, projectId, self.user.id)): log.error( "*** couldn't add invited idea to project for user %s on joining project %s" % (self.user.id, projectId)) # add a message to the queue about the join message = 'New Member! Your project now has %s total!' % project.data.num_members # email admin if (not mMessaging.emailProjectJoin( project.data.owner_email, projectId, project.data.title, self.user.id, mProject.userNameDisplay( self.user.firstName, self.user.lastName, self.user.affiliation, mProject.isFullLastName( self.user.groupMembershipBitmask)))): log.error( "*** couldn't email admin on user_id = %s joining project %s" % (self.user.id, projectId)) if (not mProject.addMessage(self.db, projectId, message, 'join', self.user.id, newIdeaId)): log.error( "*** new message not created for user %s on joining project %s" % (self.user.id, projectId)) return isJoined