def post_new_endorsement(jwt): try: # Get request data req_data = request.get_json() giver_id = req_data.get('giver_id') receiver_id = req_data.get('receiver_id') skill_id = req_data.get('skill_id') # Create new Endorsement instance new_endorsement = Endorsement( giver_id = giver_id, receiver_id = receiver_id, skill_id = skill_id ) # Create new entry in database new_endorsement.insert() return jsonify({ 'success':True, 'endorsement': new_endorsement.format() }) except: db.session.rollback() abort(422)
def post(self): viewer = self.user_model post = cgi.escape(self.request.get('key')) #Person getting the endorsement endorsee = cgi.escape(self.request.get('endorsee')) text = cgi.escape(self.request.get('text')) skill_key = ndb.Key(urlsafe=post) endorsee_key = ndb.Key(urlsafe=endorsee) endorsement = Endorsement.query(Endorsement.endorsee == endorsee_key, Endorsement.skill == skill_key).get() if text != "empty": details = EndorsementDetails() details.endorser = viewer.key details.endorsee = endorsee_key details.skill = skill_key details.description = text details.time = datetime.datetime.now() - datetime.timedelta(hours=7) #For PST details.put() if endorsement is not None: endorsement.endorsers.append(viewer.key) endorsement.endorsement_count +=1 else: endorsement = Endorsement() endorsement.endorsers.append(viewer.key) endorsement.endorsee = endorsee_key endorsement.skill = skill_key endorsement.endorsement_count +=1 endorsement.put()
def add_endorsement(request, commitment_id): commitment = get_object_or_404(Commitment, pk=commitment_id) if request.user.get_profile().is_representative and request.user.get_profile().representativeprofile.organisation == commitment.organisation: pass elif request.user.is_staff: pass else: raise Exception("Only organisation representatives and staff administrators make endorsements.") if request.POST: user = request.user text = request.POST.get('endorsement_text') endorsement = Endorsement(commitment=commitment, representative=user, endorsement_text=text) endorsement.save() messages.info(request, "Endorsement has been recorded.") else: messages.info(request, "Endorsement not saved, request must be post.") return redirect('hours.views.commitment', commitment_id=commitment.id)