Пример #1
0
    def post(self):
        jsonOutput = {'result': False}
        user = self.current_user
        linkType = self.request.get('linkType')
        sourcesURLs=json.loads(self.request.get('sourcesURLs'))
        sourcesNames=json.loads(self.request.get('sourcesNames'))
        parentNewScore = None
        
        if user:   
            try:       
                parentPointURL = self.request.get('pointUrl')
                oldPoint, oldPointRoot = Point.getCurrentByUrl(parentPointURL)
                if oldPointRoot:
                    newPoint, newLinkPoint = Point.addSupportingPoint(
                        oldPointRoot=oldPointRoot,
                        title=self.request.get('title'),
                        content=self.request.get('content'),
                        summaryText=self.request.get('plainText'),
                        user=user,
                        # backlink=oldPoint.key.parent(),
                        linkType = linkType,
                        imageURL=self.request.get('imageURL'),
                        imageAuthor=self.request.get('imageAuthor'),
                        imageDescription=self.request.get('imageDescription'),
                        sourcesURLs=sourcesURLs,
                        sourcesNames=sourcesNames            
                    )

                    # TODO: Gene: Probably have a more efficient retrieval here no?
                    oldPoint, oldPointRoot = Point.getCurrentByUrl(parentPointURL)
                    if oldPoint:
                        parentNewScore = oldPoint.pointValue()
                else:
                    raise WhysaurusException('Point with URL %s not found' % parentPointURL)
            except WhysaurusException as e:
                jsonOutput = {
                    'result': False,
                    'errMessage': str(e)
                }
            else:
                ReportEvent.queueEventRecord(user.key.urlsafe(), newLinkPoint.key.urlsafe(), newPoint.key.urlsafe(), "Create Point")           
                newLinkPointHTML = self.template_render('linkPoint.html', {
                    'point': newLinkPoint,
                    'linkType': linkType
                })
                jsonOutput = {
                    'result': True,
                    'version': newPoint.version,
                    'author': newPoint.authorName,
                    'dateEdited': newPoint.PSTdateEdited.strftime('%b. %d, %Y, %I:%M %p'),
                    'numLinkPoints': newPoint.linkCount(linkType),
                    'newLinkPoint': newLinkPointHTML,
                    'authorURL': self.current_user.url,
                    'parentNewScore': parentNewScore
                }
            self.response.headers["Content-Type"] = 'application/json; charset=utf-8'      
            self.response.out.write(json.dumps(jsonOutput))
        else:
            self.response.out.write('Need to be logged in')
Пример #2
0
 def post(self):
     jsonOutput = {'result': False}
     user = self.current_user
     linkType = self.request.get('linkType')
     sourcesURLs=json.loads(self.request.get('sourcesURLs'))
     sourcesNames=json.loads(self.request.get('sourcesNames'))
     
     if user:   
         try:       
             parentPointURL = self.request.get('pointUrl')
             oldPoint, oldPointRoot = Point.getCurrentByUrl(parentPointURL)
             if oldPointRoot:
                 newPoint, newLinkPoint = Point.addSupportingPoint(
                     oldPointRoot=oldPointRoot,
                     title=self.request.get('title'),
                     content=self.request.get('content'),
                     summaryText=self.request.get('plainText'),
                     user=user,
                     # backlink=oldPoint.key.parent(),
                     linkType = linkType,
                     imageURL=self.request.get('imageURL'),
                     imageAuthor=self.request.get('imageAuthor'),
                     imageDescription=self.request.get('imageDescription'),
                     sourcesURLs=sourcesURLs,
                     sourcesNames=sourcesNames            
                 )
             else:
                 raise WhysaurusException('Point with URL %s not found' % parentPointURL)
         except WhysaurusException as e:
             jsonOutput = {
                 'result': False,
                 'errMessage': str(e)
             }
         else:
             ReportEvent.queueEventRecord(user.key.urlsafe(), newLinkPoint.key.urlsafe(), newPoint.key.urlsafe(), "Create Point")           
             newLinkPointHTML = self.template_render('linkPoint.html', {
                 'point': newLinkPoint,
                 'linkType': linkType
             })
             jsonOutput = {
                 'result': True,
                 'version': newPoint.version,
                 'author': newPoint.authorName,
                 'dateEdited': newPoint.PSTdateEdited.strftime('%b. %d, %Y, %I:%M %p'),
                 'numLinkPoints': newPoint.linkCount(linkType),
                 'newLinkPoint': newLinkPointHTML,
                 'authorURL': self.current_user.url
             }
         self.response.headers["Content-Type"] = 'application/json; charset=utf-8'      
         self.response.out.write(json.dumps(jsonOutput))
     else:
         self.response.out.write('Need to be logged in')
Пример #3
0
    def mutate(self, info, point_data):
        oldPoint, oldPointRoot = PointModel.getCurrentByUrl(
            point_data.parentURL)
        newPoint, newLinkPoint = PointModel.addSupportingPoint(
            oldPointRoot=oldPointRoot,
            title=point_data.title,
            content=point_data.content,
            summaryText=point_data.summaryText,
            user=info.context.current_user,
            linkType=point_data.linkType,
            imageURL=point_data.imageURL,
            imageAuthor=point_data.imageAuthor,
            imageDescription=point_data.imageDescription,
            sourcesURLs=point_data.sourceURLs,
            sourcesNames=point_data.sourceNames)

        # these two are in service of the SubPointConnection logic - we should find a way to DRY this up
        newLinkPoint.parent = newPoint
        newLinkPoint.link_type = point_data.linkType

        return AddEvidence(point=newLinkPoint, parent=newPoint)