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) })
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()
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