Exemple #1
0
def new_app():

    """
    用户创建APP
    """

    if check_user_login():
        return redirect(url_for('main.signin'))

    if request.method == 'GET':
        return render_template('new-app.html')

    app_name = request.form.get('app_name', '', type=str)
    platform = request.form.get('app_usage', -1, type=int)
    description = request.form.get('description', '', type=str)

    # 判断是否为空
    if app_name.strip() == '' or description.strip() == '':
        return jsonify({'status':400})

    developer = Developer.query.filter_by(username=session.get("username")).first()

    if description.strip() == '' or app_name.strip() == '':
        return render_template('new-app.html', warning='')

    app = App(app_name=app_name, description=description,
              platform=platform)

    app.developer = developer

    try:
        app.save()
    except Exception, e:
        print e
        return jsonify({'status':401})
Exemple #2
0
    def setUp(self):
        self.old_name = 'oldname'

        app = App()
        app.code = self.old_name
        app.name = self.old_name
        app.introduction = "introduction"
        app.creater = 'admin',
        app.language = 'python'
        app.auth_token = '1234'
        app.deploy_token = '1234'
        app.tags = None
        app.save()
Exemple #3
0
    def setUp(self):
        # Every test needs access to the request factory.
        self.factory = RequestFactory()
        self.user = BkUser.objects.create_user('test', password='******')

        self.old_name = 'oldname'
        app = App()
        app.code = self.old_name
        app.name = self.old_name
        app.introduction = "introduction"
        app.creater = 'admin',
        app.language = 'python'
        app.auth_token = '1234'
        app.deploy_token = '1234'
        app.tags = None
        app.save()
Exemple #4
0
    def setUp(self):
        self.factory = RequestFactory()
        # from django.test.client import Client
        # self.client = Client()
        self.user = BkUser.objects.create_user('test', password='******')

        self.code = 'test'

        app = App()
        app.code = self.code
        app.name = self.code
        app.introduction = "introduction"
        app.creater = 'admin',
        app.language = 'python'
        app.auth_token = '1234'
        app.deploy_token = '1234'
        app.tags = None
        app.save()
Exemple #5
0
def csv_to_db(csvfile):
    App.objects.all().delete()      # DANGER: Delete existing apps info
    reader = csv.DictReader(csvfile)
    num_apps = 0
    warnings = []
    infos = []
    for rid, row in enumerate(reader):
        acronym = row['Acronym'].strip()
        version = row['Version Number'].strip()
        if acronym == '':
            msg = "Ignoring row=%d without Acronym" % rid
            warnings.append(msg)
            logging.warning(msg)
            continue
        if len(acronym) < 2:
            msg = "Ignoring row=%d with too-short Acronym=%s" % (rid, acronym)
            warnings.append(msg)
            logging.warning(msg)
            continue
        existing = App.objects.filter(acronym__iexact=acronym, version_number=version)
        if existing:
            msg = "Ignoring extant acronym=%s version=%s" % (acronym, version)
            warnigns.append(msg)
            logging.warning(msg)
            continue
        app = App()
        app.save()                  # save for M2M
        for k, v in row.items():
            v = v.strip()
            if not v:           # don't store empty values
                continue
            # MAYBE TODO: filter nulls from M2M, check nullish
            # MAYBE TODO: transform Date, Time, Boolean, Integer
            try:
                setattr(app, mogrify(k), v)
            except (TypeError, ValidationError), e:
                logging.error("SETATTR: %s", e)
                import pdb; pdb.set_trace()
        try:
            app.save()
        except (TypeError, ValidationError), e:
                logging.error("SAVE: %s", e)
                import pdb; pdb.set_trace()
Exemple #6
0
def app_add(request):
    # getAppBaseInfo(os.getcwd() + "/appStorage/Smart360.apk")
    try:
        if request.method == 'POST':
            upload_file = request.FILES.get('file')
            appName = request.POST['appName']
            buildName = request.POST['buildName']
            version = request.POST['version']
            release_note = request.POST['releaseNote']
            if not upload_file:
                raise FileNotFoundError("please upload file")
            isExists = Update.objects.filter(app_name=appName,
                                             build_name=buildName)
            if isExists:
                return HttpResponse("添加失败,该应用以存在,请在更新列表中进行更新即可")

            name = upload_file.name[0:-4] + "_" + buildName + "_" + str(
                version) + ".apk"
            upload_file_path = os.getcwd() + "/appStorage/" + name
            with open(upload_file_path, 'wb+') as destination:
                for chunk in upload_file.chunks():
                    destination.write(chunk)
            update = Update(app_name=appName,
                            build_name=buildName,
                            version=version,
                            size=upload_file.size,
                            release_note=release_note,
                            release_time=datetime.datetime,
                            storage_name=name)
            update.save()
            app = App(app_name=appName,
                      build_name=buildName,
                      version=version,
                      size=upload_file.size,
                      release_time=datetime.datetime,
                      storage_name=name)
            app.save()
            return HttpResponse("Add application success")
        else:
            return HttpResponse("Must use the POST method")
    except Exception as e:
        return HttpResponse("Add application failed. >>> ")
Exemple #7
0
def new(request):
    CONFIG = config
    if request.method == 'POST':
        form = AppForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            name = form.cleaned_data['name']
            desc = form.cleaned_data['description']
            author = form.cleaned_data['author']
            version = form.cleaned_data['version']
            location = CONFIG.APP_DIRECTORY + request.FILES['file'].name
            
            anApp = App(name=name, description=desc, version=version, location=location, author=author)
            anApp.save()
            anApp.downloadLink = request.build_absolute_uri(reverse('app.views.download', kwargs={'id':anApp.id}))
            anApp.save()

            messages.add_message(request, messages.SUCCESS, 'Successfully Created')
            return HttpResponseRedirect('/app/')
    else:
        form = AppForm()
    return render(request, 'app/new.html', locals())
Exemple #8
0
def new(request):
    CONFIG = config
    if request.method == "POST":
        form = AppForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES["file"])
            name = form.cleaned_data["name"]
            desc = form.cleaned_data["description"]
            author = form.cleaned_data["author"]
            version = form.cleaned_data["version"]
            location = CONFIG.APP_DIRECTORY + request.FILES["file"].name

            anApp = App(name=name, description=desc, version=version, location=location, author=author)
            anApp.save()
            anApp.downloadLink = request.build_absolute_uri(reverse("app.views.download", kwargs={"id": anApp.id}))
            anApp.save()

            messages.add_message(request, messages.SUCCESS, "Successfully Created")
            return HttpResponseRedirect("/app/")
    else:
        form = AppForm()
    return render(request, "app/new.html", locals())
Exemple #9
0
def upload_app(request):
    try:
        upload_file = request.FILES.get('file')
        version = request.POST['version']
        appName = request.POST['appName']
        buildName = request.POST['buildName']
        release_note = request.POST['releaseNote']
        if not upload_file:
            raise FileNotFoundError("please upload file.")
        updateApp = Update.objects.get(app_name=appName, build_name=buildName)
        if updateApp.version >= int(version):
            return HttpResponse("更新失败,新版本号小于当前版本")

        name = upload_file.name[:-4] + "_" + buildName + "_" + str(
            version) + ".apk"
        upload_file_path = os.getcwd() + "/appStorage/" + name
        with open(upload_file_path, 'wb+') as destination:
            for chunk in upload_file.chunks():
                destination.write(chunk)
        print(upload_file.size)
        updateApp.version = version
        updateApp.size = upload_file.size
        updateApp.release_note = release_note
        updateApp.release_time = datetime.datetime.now()
        updateApp.storage_name = name
        updateApp.save()

        app = App(app_name=appName,
                  build_name=buildName,
                  version=version,
                  size=upload_file.size,
                  release_time=datetime.datetime,
                  storage_name=name)
        app.save()
    except BaseException as e:
        return HttpResponse(e)

    return HttpResponse("upload success")