SaaS公司Asana概况、产品功能、融资历史及主要竞品介绍
#Asana#
SaaS公司Asana概况、产品功能、融资历史及主要竞品介绍
Asana是一家SaaS公司,主要提供项目管理软件,总部位于美国旧金山。目前,Asana的客户遍布全球190个国家和地区,其中包括微软、谷歌、AIrbnb、Uber、Dropbox等众多知名企业。
Asana产品主要功能有:
项目管理:可视化项目进度、跟踪任务完成情况、查看项目成员负荷,并通过甘特图和日历视图对项目进行更直观的跟踪和管理。
任务管理:可以通过任务列表、任务详情页面和任务标签来对任务进行分类管理,并可通过任务依赖关系、任务优先级和任务进度来对任务进行更细致的管理。
文件管理:可以通过文件夹、文件标签、文件搜索等功能来对文件进行分类管理,并可以通过版本控制来对文件进行更细致的管理。
数据管理:可以通过数据表、数据图表、数据分析等功能来对数据进行分类管理,并可以通过数据导出功能来对数据进行更细致的管理。
Asana目前已经完成了C轮融资,总融资额达到10亿美元。融资历史如下:
C轮:10亿美元,由新浪、高盛、东方富海投资,于2017年12月完成。
B轮:5050万美元,由新浪投资,于2016年3月完成。
A轮:2525万美元,由高盛投资,于2015年1月完
!')
return response
def get_data(self, request, *args, **kwargs): return self.list_queryset(request)
def get(self, request, *args, **kwargs): ret = {'code':0} queryset = self.get_data(request) ret['data'] = queryset return JsonResponse(ret)
def post(self, request, *args, **kwargs): ret = {'code':0} form = self.get_form() if form.is_valid(): form.save() ret['msg'] = '添加成功!' else: ret['code'] = 1 ret['msg'] = form.errors return JsonResponse(ret)
class AssetListView(LoginRequiredMixin, View): def get(self, request, *args, **kwargs): return render(request, 'assets/assets.html')
class AssetJsonView(LoginRequiredMixin, View): def getdata(self, request): assetobj = Asset.objects.all() return asset_obj
def get(self, request, *args, **kwargs):
ret = {'code':0}
queryset = self.get_data(request)
ret['data'] = queryset
return JsonResponse(ret)
class AssetAddView(LoginRequiredMixin, View): def post(self, request, *args, **kwargs): ret = {'code':0} data = json.loads(request.body.decode('utf-8')) form = AssetForm(data) if form.is_valid(): form.save() ret['msg'] = '添加成功!' else: ret['code'] = 1 ret['msg'] = form.errors return JsonResponse(ret)
class AssetDetailView(LoginRequiredMixin, View): def getdata(self, request): assetobj = Asset.objects.get(pk=pk) return asset_obj
def get(self, request, pk, *args, **kwargs):
ret = {'code':0}
queryset = self.get_data(request)
ret['data'] = queryset
return JsonResponse(ret)
def put(self, request, pk, *args, **kwargs):
ret = {'code':0}
data = json.loads(request.body.decode('utf-8'))
form = AssetForm(data, instance=asset_obj)
if form.is_valid():
form.save()
ret['msg'] = '修改成功!'
else:
ret['code'] = 1
ret['msg'] = form.errors
return JsonResponse(ret)
def delete(self, request, pk, *args, **kwargs):
ret = {'code':0}
asset_obj.delete()
return JsonResponse(ret)
class ServerListView(LoginRequiredMixin, View): def get(self, request, *args, **kwargs): return render(request, 'server/server.html')
class ServerJsonView(LoginRequiredMixin, View): def getdata(self, request): serverobj = Server.objects.all() return server_obj
class ServerAddView(LoginRequiredMixin, View): def post(self, request, *args, **kwargs): ret = {'code':0} data = json.loads(request.body.decode('utf-8')) form = ServerForm(data) if form.is_valid(): form.save() ret['msg'] = '添加成功!' else: ret['code'] = 1 ret['msg'] = form.errors return JsonResponse(ret)
class ServerDetailView(LoginRequiredMixin, View): def get_data