def ask_for_admin(self, user): from accounts.models import S_G_Card if not S_G_Card.objects( group=self, is_active=True, is_admin=True).scalar('user'): S_G_Card.objects( user=user, group=self, is_active=True).update(set__is_admin=True)
def entergroup(self, user): from accounts.models import S_G_Card if S_G_Card.objects( group=self, is_active=True, is_admin=False).scalar('user') or S_G_Card.objects( group=self, is_active=True, is_admin=True).scalar('user'): if S_G_Card.objects(user=user, group=self): S_G_Card.objects( user=user, group=self).update( set__is_active=True, set__is_admin=False, set__creat_time=datetime.datetime.now()) else: S_G_Card( user=user, group=self, is_active=True, is_admin=False, creat_time=datetime.datetime.now()).save() else: if S_G_Card.objects(user=user, group=self): S_G_Card.objects( user=user, group=self).update( set__is_active=True, set__is_admin=True, set__creat_time=datetime.datetime.now()) else: S_G_Card( user=user, group=self, is_active=True, is_admin=True, creat_time=datetime.datetime.now()).save()
def creat_group(request): if request.method == "POST": form = CreatGroupForm(request.POST) if form.is_valid(): name = form.cleaned_data["name"] introduction = form.cleaned_data["introduction"] grouptype = form.cleaned_data["grouptype"] group = Group(name=name, introduction=introduction, grouptype=grouptype, logo=STATIC_URL + "img/face.png") url_number = len(Group.objects) + 1 group.url_number = url_number group.birthday = datetime.datetime.now() if request.FILES: path = "img/group/" + str(url_number) if not os.path.exists(MEDIA_ROOT + path): os.makedirs(MEDIA_ROOT + path) img = Image.open(request.FILES["logo"]) if img.mode == "RGB": filename = "logo.jpg" elif img.mode == "P": filename = "logo.png" filepath = "%s/%s" % (path, filename) # 获得图像的宽度和高度 width, height = img.size # 计算宽高 ratio = 1.0 * height / width # 计算新的高度 new_height = int(260 * ratio) new_size = (260, new_height) # 缩放图像 out = img.resize(new_size, Image.ANTIALIAS) out.save(MEDIA_ROOT + filepath) group.logo = MEDIA_URL + filepath group.save() sgcard = S_G_Card( user=request.user, group=group, is_active=True, is_admin=True, creat_time=datetime.datetime.now() ) sgcard.save() return HttpResponseRedirect("/group/" + str(url_number) + "/") else: form = CreatGroupForm() return render_to_response( "group/creat_group.html", {"form": form, "STATIC_URL": STATIC_URL, "current_user": request.user}, context_instance=RequestContext(request), )
def group(request, gurl_number): group = Group.objects(url_number=gurl_number).get() if request.method == "POST": form = NewTopicForm(request.POST) if form.is_valid(): title = form.cleaned_data["title"] content = form.cleaned_data["content"] topic = Topic(title=title) turl_number = len(Topic.objects) + 1 topic.url_number = turl_number topic.content = content topic.creat_time = datetime.datetime.now() topic.is_active = True topic.is_locked = False topic.is_top = False topic.clicks = 0 topic.update_time = datetime.datetime.now() topic.update_author = request.user sgcard = S_G_Card.objects(user=request.user, group=group).get() topic.creator = sgcard topic.save() return HttpResponseRedirect("/group/" + str(gurl_number) + "/topic/" + str(turl_number) + "/") else: form = NewTopicForm() return render_to_response( "group/group.html", {"form": form, "group": group, "STATIC_URL": STATIC_URL, "current_user": request.user}, context_instance=RequestContext(request), )
def kick_out(self, user_url_number): from accounts.models import Student from accounts.models import S_G_Card user = Student.objects(url_number=user_url_number).get() S_G_Card.objects(group=self, user=user).update(set__is_active=False)
def promote(self, user_url_number): from accounts.models import Student from accounts.models import S_G_Card user = Student.objects(url_number=user_url_number).get() S_G_Card.objects(group=self, user=user).update(set__is_admin=True)
def get_user_list(self): from accounts.models import S_G_Card return S_G_Card.objects(group=self, is_active=True).scalar('user')
def get_inactive_topic_list(self): from accounts.models import S_G_Card creator = S_G_Card.objects(group=self).all() from forum.models import Topic return Topic.objects(creator__in=creator, is_active=False)
def quitgroup(self, user): from accounts.models import S_G_Card S_G_Card.objects( user=user, group=self, is_active=True).update(set__is_active=False)