Пример #1
0
def addColumnView(request, boardId=None):
    if request.method == 'GET' and boardId is not None:  # se il metodo e una GET e il board id non e di proprieta del user ritorna un notfound
        board = Board.objects.filter(pk=boardId, users=request.user)
        if not board.exists():
            return HttpResponseNotFound(NOT_FOUND_PAGE)
        form = AddColumnForm(initial={
            'boardId': boardId,
            'name': ''
        })  # preinserimento del board id nel form in un campo hidden
    elif request.method == 'POST':  # se la richista e una post e il form e valido  crea una nuova colonna
        user = User.objects.get(username=request.user.username)
        form = AddColumnForm(request.POST)
        form.setUser(user)
        if form.is_valid():
            columnName = form.cleaned_data.get('columnname')
            boardId = form.cleaned_data.get('boardId')
            board = Board.objects.filter(users=request.user)
            newcolumn = Column(name=columnName, board=board.get(pk=boardId))
            newcolumn.save()
            return redirect(board.get(pk=boardId).get_absolute_url())
        elif '*not_found' in str(
                form.errors
        ):  # se tra gli errori del form e presente un not_found error restituisce la rispettiva pagina
            return HttpResponseNotFound(NOT_FOUND_PAGE)
        else:
            boardId = form.cleaned_data.get('boardId')
    else:
        return HttpResponseNotFound(NOT_FOUND_PAGE)
    return render(request, 'addcolumn.html', {
        'form': form,
        'board': Board.objects.get(pk=boardId)
    })
Пример #2
0
def create_column(obj):
    '''
	'''
    c = Column(content_object=obj)

    key = ''
    while True:
        key = generate_sha1()[:20]
        if not Column.objects.filter(secret_id=key).count():
            break

    c.secret_id = key

    c.save()
Пример #3
0
def create_column(obj):
	'''
	'''
	c = Column(content_object=obj)
	
	key = ''
	while True:
		key = generate_sha1()[:20]
		if not Column.objects.filter(secret_id=key).count():
			break
	
	c.secret_id = key
	
	c.save()
Пример #4
0
def json2schema(schema_json, commit = True, destdb = None):
    """
    Creates Database, Table, and Column objects as needed to satisfy the incoming schema.
    If the table is already present, assume we are updating: delete all columns and recreate from the schema.
    Unless commit is false, call the required sql to create the incoming tables in the destination database.
    """

    schema = json.loads(schema_json)

    for dbname, table_schema in schema.iteritems():
        if destdb:
            dbname = destdb

        try:
            db = Database.objects.get(name=dbname)
        except Database.DoesNotExist:
            db = Database(name=dbname)
            db.save()

        for tablename, column_schema in table_schema.iteritems():
            try:
                table = Table.objects.get(db=db, name=tablename)
                for column in Column.objects.filter(table=table):
                    column.delete()
            except Table.DoesNotExist:
                table = Table(db=db, name=tablename)
                table.save()

            for columnname, columntype in column_schema.iteritems():
                column = Column(table=table, name=columnname, type=columntype)
                column.save()

            if commit:
                model = ModelGenerator.getModel(dbname, tablename)
                cursor = connections[dbname].cursor()
                for sql in ModelGenerator.getSQL(model):
                    cursor.execute(sql)
    return None