示例#1
0
        def update_activity():
            id = new_activity.get('id')
            if not id:
                self.abort(400, 'Scraped post missing id')
            activity = Activity.get_by_id(id)

            if activity:
                # we already have this activity! merge in any new comments.
                merged_activity = copy.deepcopy(new_activity)
                existing_activity = json_loads(activity.activity_json)
                # TODO: extract out merging replies
                replies = merged_activity.setdefault('object', {}).setdefault(
                    'replies', {})
                gr_source.merge_by_id(
                    replies, 'items',
                    existing_activity.get('object',
                                          {}).get('replies',
                                                  {}).get('items', []))
                replies['totalItems'] = len(replies.get('items', []))
                # TODO: merge tags too
                activity.activity_json = json_dumps(merged_activity)
            else:
                activity = Activity(id=id,
                                    source=source.key,
                                    html=self.request.text,
                                    activity_json=json_dumps(new_activity))

            # store and return the activity
            activity.put()
            logging.info(f"Stored activity {id}")
            self.output(new_activity)
示例#2
0
        def update_activity():
            id = new_activity.get('id')
            if not id:
                self.error('Scrape error: post missing id')
            activity = Activity.get_by_id(id)

            if activity:
                # we already have this activity! merge in any new comments and likes
                merged_activity = copy.deepcopy(new_activity)
                merged_obj = merged_activity.setdefault('object', {})
                existing_activity = json_loads(activity.activity_json)
                existing_obj = existing_activity.get('object', {})

                replies = merged_obj.setdefault('replies', {})
                gr_source.merge_by_id(
                    replies, 'items',
                    existing_obj.get('replies', {}).get('items', []))
                replies['totalItems'] = len(replies.get('items', []))
                gr_source.merge_by_id(merged_obj, 'tags',
                                      existing_obj.get('tags', []))
                activity.activity_json = json_dumps(merged_activity)

            else:
                activity = Activity(id=id,
                                    source=source.key,
                                    html=request.get_data(as_text=True),
                                    activity_json=json_dumps(new_activity))

            # store and return the activity
            activity.put()
            logger.info(f"Stored activity {id}")
示例#3
0
	def get(self, *args):
		respo = self.response.out.write
		output = self.dbg
		
		respo ("<html><head><title>Test</title></head><body>")
		if (self.request.path.endswith('/clean')):
			output ("Begin Clean Up")
			self.cleanUp()
			output ("Cleaning up done")
			return
		output("Now let's go")
		billList = [('Cort', '75.5'), ('Balls', '15')]
		output ("BillList: ", billList)
		
		allacts = Activity.all()
		for act in allacts:
			bill = act.bill
			for entry in bill:
				output ("Entry:", entry, ",", lb = False)
			output()
			output ("acts:", act.key().id(), "Total Expense:", act.expense, "Expanse Bill: ", bill)
		
		mem = Membership.all().get()
		output ("New activity")
		act = Activity(name = "test act", duration=2.0, organizer = mem.user, club = mem.club, bill = billList, expense = '100' )
		output ("Expense:", act.expense)
		output ("Bill:", act.bill)
		output ("Now, put")
		key = act.put()
		output ("Act Saved: ", act.is_saved(), "Key is ", key, " Id is", key.id())
		respo("</body></html>")
示例#4
0
文件: views.py 项目: noio/Plan-a-Date
def activities(request):
    # Function to get all activities and handle POST request to add or edit
    # an activity
    response_params = {}
    response_params['activities'] = models.Activity.all()
    response_params['activity_form'] = ActivityForm()

    # If the form is submitted    
    if request.method == "POST":        
        tags = request.POST['tags'].split(',')

        tag_ids = []
        for tag in tags:
            if tag.strip() != '':                
                t = models.Tag.get_or_insert(key_name=tag)
                tag_ids.append(t.key())

        name = request.POST['name']
        price = int(request.POST['price'])

        duration_min = timedelta(seconds=floatToSeconds(float(request.POST['duration_min'])))
        duration_max = timedelta(seconds=floatToSeconds(float(request.POST['duration_max'])))

        # If we got an activity id from the request, we do an update instead of an add
        if 'activity-id' in request.POST:
            logging.info('edit an existing activity')
            activity = Activity.get_by_id(int(request.POST['activity-id']))
            activity.name = name
            activity.price = price
            activity.duration_min = duration_min
            activity.duration_max = duration_max
            activity.tags = tag_ids
            activity.put()
        else:
            activity = Activity(name=name,price=price,duration_min=duration_min,duration_max=duration_max,tags=tag_ids)
            activity.put()

    return render_to_response('activities.html', response_params)