def crear_grupo(request): template = "grupos/crear_grupo.html" if request.method == "POST": form = FormCrearGrupo(request.POST) if form.is_valid(): # Sumar un tipo al grupo (Abierto, Cerrado, Todos puede añadir, Admins pueden añadir) tipo_grupo = form.obtener_tipo() nuevo_grupo = form.save(commit=False) nuevo_grupo.tipo = tipo_grupo # Situar el grupo en una ciudad si es necesario situar_ciudad = form.cleaned_data['situar_ciudad'] perfil_admin = obtener_perfil(request.user) if situar_ciudad: nuevo_grupo.ciudad = perfil_admin.ciudad nuevo_grupo.save() # Crear usuario administrador usuario_admin = UsuariosGrupo(perfil=perfil_admin, grupo=nuevo_grupo, es_admin=True) usuario_admin.save() return redirect('grupos:main_grupo', id_grupo=nuevo_grupo.id) else: form = FormCrearGrupo() context = {'form': form} return render(request, template, context)
def editar_grupo(request, id_grupo): template = "grupos/editar_grupo.html" grupo = get_object_or_404(Grupo, id=id_grupo) if request.method == "POST": form = FormCrearGrupo(request.POST, instance=grupo) if form.is_valid(): # Sumar un tipo al grupo (Abierto, Cerrado, Todos puede añadir, Admins pueden añadir) tipo_grupo = form.obtener_tipo() grupo_editado = form.save(commit=False) grupo_editado.tipo = tipo_grupo # Situar el grupo en una ciudad si es necesario situar_ciudad = form.cleaned_data['situar_ciudad'] perfil_admin = obtener_perfil(request.user) if situar_ciudad: grupo_editado.ciudad = perfil_admin.ciudad # Guardar cambios grupo_editado.save() return redirect('grupos:main_grupo', id_grupo=grupo.id) else: if grupo.ciudad is not None: form_situar_ciudad = True form = FormCrearGrupo(initial={ 'nombre': grupo.nombre, 'descripcion': grupo.descripcion, 'imagen': grupo.imagen, 'tipo_apertura': grupo.obtener_tipo_apertura(), 'tipo_invitaciones': grupo.obtener_tipo_invitaciones(), 'situar_ciudad': form_situar_ciudad }) context = {'form': form, 'grupo': grupo} return render(request, template, context)