def owner_profile(request): """ Default view show list of sales person in store, button to enable/disable sales. TODO: show store statistics: 1.number of customers 2.number of orders 3.total profits 4.return ratio """ store_id = request.session['current_store_id'] store = Store.objects.get(id = store_id) #list sales agents enrollments = StoreEnrollment.objects.filter(store_id = store_id) enrolls = [] for item in enrollments: enroll = Enrollment(item.id, item.agent.username, item.agent.email, item.active) # user = User.objects.get(id = enroll.agent.id) enrolls.append(enroll) # compute the menu menu = MenuService.owner_menu(request.user, store) request.session['current_menu'] = menu logger.debug('calling store.views.owner_profile()') requestContext = RequestContext(request, {'menu':menu, 'store':store, 'enrolls': enrolls, 'user': request.user, 'page_title': 'Owner profile'} ) return render_to_response('owner-profile.html', requestContext)
def add_customer(request, store_id): """ agent can add user after login. method assumes user is already approved. """ user = request.user if request.method == 'POST': profile_form = UserProfileForm(data=request.POST) if profile_form.is_valid(): user_profile = profile_form.save(commit=False) user_profile.user=user user_profile.save() return store.views.profile(request) else: print profile_form.errors # return HttpResponse("Edit profile is failed.") raise Http404("Edit profile is failed.") else: # for visitor, generate empty menu menu = MenuService.visitor_menu() profile_form = UserProfileForm() requestContext = RequestContext(request, {'menu':menu, 'page_title': 'Edit Profile', 'profile_form': profile_form} )
def create_store(request): logger.debug('calling store.views.create_store()') if request.method == 'POST': store_form = StoreForm(data=request.POST) if store_form.is_valid(): store = store_form.save(commit=False) store.owner = request.user print 'user = {0}'.format(vars(request.user)) store.save() return owner_profile(request) else: print store_form.errors return HttpResponse("Create store is failed.") else: # for visitor, generate empty menu menu = MenuService.new_user_menu(request.user) store_form = StoreForm() requestContext = RequestContext(request, {'menu':menu, 'store_form': store_form, 'page_title': 'Create store'} ) # Render the template depending on the context. return render_to_response('new.html', requestContext)
def agent_profile(request): """ Default view show list of customers, order button for customer. TODO: show store statistics: 1.number of customers 2.number of orders 3.total profits 4.return ratio """ # list all customer of this agent user = request.user store_id = request.session['current_store_id'] store = Store.objects.get(id = store_id) customers = Customer.objects.filter(agent_id = user.id,store_id = store_id) # compute the menu menu = MenuService.sales_menu(request.user, store) request.session['current_menu'] = menu logger.debug('calling store.views.agent_profile()') requestContext = RequestContext(request, {'menu':menu, 'customers': customers, 'store':store, 'user': request.user, 'page_title': 'Agent profile'} ) return render_to_response('agent-profile.html', requestContext)
def profile(request): logger.debug('calling store.views.profile()') menu = MenuService.new_user_menu(request.user) context = { 'menu':menu, 'page_title': 'User profile', 'user': request.user, } return render_to_response('profile.html', context)
def store_list(request, user_id): """ Verify user has the access to enlist store. """ logger.debug('calling store.views.store_list()') user_name = request.user.username menu = MenuService.new_user_menu(request.user) context = { 'menu':menu, 'page_title': 'Profile', 'user_name': user_name, } return render_to_response('profile.html', context)
def unapproved_agent_profile(request): store_id = request.session['current_store_id'] store = Store.objects.get(id = store_id) menu = MenuService.unapproved_sales_menu(request.user, store) request.session['current_menu'] = menu logger.debug('calling store.views.unapproved_agent_profile()') requestContext = RequestContext(request, {'menu':menu, 'store':store, 'user': request.user, 'page_title': 'Unapproved agent profile'} ) return render_to_response('unapproved-agent-profile.html', requestContext)
def create_app(test_config=None): app = Flask(__name__) cors = CORS(app, resources={r"/*": {"origins": "*"}}) if test_config is None: app.config.from_pyfile("config.py") else: app.config.update(test_config) database = create_engine(app.config['DB_URL'], encoding='utf-8', max_overflow=0) ## Persistenace Layer user_dao = UserDao(database) store_dao = StoreDao(database) category_dao = CategoryDao(database) menu_dao = MenuDao(database) order_dao = OrderDao(database) ## Business Layer s3_client = boto3.client("s3", aws_access_key_id=app.config['S3_ACCESS_KEY'], aws_secret_access_key=app.config['S3_SECRET_KEY'], region_name='ap-northeast-2') services = Services services.user_service = UserService(user_dao, app.config, s3_client) services.store_service = StoreService(store_dao, app.config, s3_client) services.menu_service = MenuService(menu_dao, app.config, s3_client) services.order_service = OrderService(order_dao) services.category_service = CategoryService(category_dao) socket_io = SocketIO(app, cors_allowed_origins="*") ## 엔드포인트들을 생성 create_endpoints(app, services, socket_io) return app, socket_io