def change_state(request, order_id, transition): """ Serves URL /shop/orders/<order_id>/<transition>/ """ try: order = get_object_or_404(Order, id=int(order_id)) if request.user != order.originator: return forbidden(request) order.check_can_pass_transition(transition) if transition == order.modify.__name__: return _modify(request, order) elif transition == order.confirm.__name__: order.confirm() return redirect('/shop/orders/%d/' % order.id) elif transition == order.cancel.__name__: comment = request.POST.get('comment', None) if not comment: raise IllegalTransition('Please leave a comment.') order.cancel(comment) return redirect('/shop/orders/%d/' % order.id) else: return forbidden(request) except ValueError: raise Http404() except IllegalTransition, error: return _order_details(request, order, error)
def edit_api(request, keyID): api = get_object_or_404(UserAPIKey, keyID=int(keyID)) if api.user != request.user: return forbidden(request) if request.method == 'POST': form = EditApiKeyForm(request.POST) form.user = request.user if form.is_valid(): api.vCode = form.cleaned_data["vCode"] api.is_valid = True api.save() members, corps = init_characters(request.user, form.characters) for member in members: member.save() for corp in corps: corp.save() update_user_accesses(request.user) logger.info('"%s" edited API Key %d' % (request.user, api.keyID)) return redirect('/account/') else: # request.method == 'GET' form = EditApiKeyForm(initial={"keyID" : api.keyID, "vCode" : api.vCode}) data = { 'form': form, 'request_path' : request.get_full_path(), 'accessMask': required_access_mask(character=True) } return render_to_response('ecm/auth/edit_api.html', data, Ctx(request))
def delete_api(request, keyID): api = get_object_or_404(UserAPIKey, keyID=int(keyID)) if api.user == request.user: keyID = api.keyID api.delete() logger.info('"%s" deleted API Key %d' % (request.user, keyID)) return redirect("/account/") else: return forbidden(request)
def delete_binding(request, binding_id): binding = get_object_or_404(UserBinding, id=int(binding_id)) if binding.user == request.user: binding.delete() logger.info('"%s" removed binding to external application "%s"' % (request.user, binding.external_app.name)) return redirect('/account/') else: return forbidden(request)
def delete_character(request, characterID): character = get_object_or_404(Member, characterID=int(characterID)) if character.owner == request.user: character.owner = None character.save() update_user_accesses(request.user) logger.info('"%s" gave up ownership of character "%s"' % (request.user, character.name)) return redirect('/account/') else: return forbidden(request)
def details(request, order_id): """ Serves URL /shop/orders/<order_id>/ """ try: order = get_object_or_404(Order, id=int(order_id)) except ValueError: raise Http404() if order.originator != request.user: return forbidden(request) return _order_details(request, order)
def change_state(request, order_id, transition): """ Serves URL /industry/orders/<order_id>/<transition>/ """ try: order = get_object_or_404(Order, id=int(order_id)) order.check_can_pass_transition(transition) if transition == order.accept.__name__: if not order.accept(request.user): raise IllegalTransition( 'Order could not be accepted. See order log for details.') elif transition == order.resolve.__name__: order.resolve(request.user, '') elif transition == order.reject.__name__: comment = request.POST.get('comment', None) if not comment: raise IllegalTransition('Please leave a comment.') order.reject(request.user, comment) elif transition == order.start_preparation.__name__: order.start_preparation(user=request.user) jobs = order.jobs.exclude(state__in=[Job.IN_PRODUCTION, Job.READY]) jobs.update(state=Job.IN_PRODUCTION, assignee=request.user) elif transition == order.end_preparation.__name__: order.end_preparation(request.user) jobs = order.jobs.exclude(state=Job.READY) jobs.update(state=Job.READY, assignee=request.user) elif transition == order.deliver.__name__: order.deliver(request.user) elif transition == order.record_payment.__name__: order.record_payment(request.user) else: return forbidden(request) # operation was successfull return redirect('/industry/orders/%d/' % order.id) except ValueError: raise Http404() except IllegalTransition, error: return _order_details(request, order, error)
def change_state(request, order_id, transition): """ Serves URL /industry/orders/<order_id>/<transition>/ """ try: order = get_object_or_404(Order, id=int(order_id)) order.check_can_pass_transition(transition) if transition == order.accept.__name__: if not order.accept(request.user): raise IllegalTransition('Order could not be accepted. See order log for details.') elif transition == order.resolve.__name__: order.resolve(request.user, '') elif transition == order.reject.__name__: comment = request.POST.get('comment', None) if not comment: raise IllegalTransition('Please leave a comment.') order.reject(request.user, comment) elif transition == order.start_preparation.__name__: order.start_preparation(user=request.user) jobs = order.jobs.exclude(state__in=[Job.IN_PRODUCTION, Job.READY]) jobs.update(state=Job.IN_PRODUCTION, assignee=request.user) elif transition == order.end_preparation.__name__: order.end_preparation(request.user) jobs = order.jobs.exclude(state=Job.READY) jobs.update(state=Job.READY, assignee=request.user) elif transition == order.deliver.__name__: order.deliver(request.user) elif transition == order.record_payment.__name__: order.record_payment(request.user) else: return forbidden(request) # operation was successfull return redirect('/industry/orders/%d/' % order.id) except ValueError: raise Http404() except IllegalTransition, error: return _order_details(request, order, error)
def add_comment(request, order_id): """ Serves URL /shop/orders/<order_id>/comment/ """ try: order = get_object_or_404(Order, id=int(order_id)) except ValueError: raise Http404() if order.originator != request.user: return forbidden(request) if request.method == 'POST': comment = request.POST.get('comment', '') order.add_comment(request.user, comment) LOG.info('"%s" added a comment on order #%d', request.user, order.id) return redirect('/shop/orders/%d/' % order.id)