def edit_stereotype(request, conversation, stereotype): if request.user == conversation.author: rendered_stereotype_form = StereotypeForm(request.POST or None, instance=stereotype) stereotype_votes = StereotypeVote.objects.filter(author=stereotype) rendered_votes_form = StereotypeVoteFormSet(request.POST or None, queryset=stereotype_votes) if request.method == 'POST': if rendered_stereotype_form.is_valid( ) and rendered_votes_form.is_valid(): stereotype = rendered_stereotype_form.save(commit=False) stereotype.conversation = conversation stereotype.owner = request.user stereotype.save() votes = rendered_votes_form.save(commit=False) for vote in votes: vote.author = stereotype vote.save() return redirect(conversation.get_absolute_url() + 'stereotypes/') return { 'stereotype_form': rendered_stereotype_form, 'votes_form': rendered_votes_form, 'conversation_title': conversation.title, } else: return redirect(conversation.get_absolute_url())
def test_repetead_stereotype_data(self, user_db): Stereotype.objects.create(name="Stereotype1", owner=user_db) form = StereotypeForm( { "name": "Stereotype1", "description": "description" }, owner=user_db) assert not form.is_valid() assert set(form.errors) == {"__all__"}
def test_edit_existing_stereotype(self, user_db): instance = Stereotype.objects.create(name="Stereotype1", owner=user_db) form = StereotypeForm( { "name": "Stereotype1", "description": "description" }, instance=instance) print(form.errors) assert form.is_valid()
def edit(request, stereotype): check_stereotype(stereotype, request.user) form = StereotypeForm(request=request, instance=stereotype) if request.POST.get("action") == "delete": stereotype.delete() return redirect("stereotypes:list") elif form.is_valid_post(): form.save() return redirect("stereotypes:list") return {"form": form, "stereotype": stereotype}
def test_edit_existing_stereotype(self, conversation, db, user): instance = Stereotype.objects.create(name="Stereotype1", conversation=conversation, owner=user) form = StereotypeForm( { 'name': "Stereotype1", 'description': "description", }, conversation=conversation, instance=instance) assert form.is_valid()
def test_valid_data(self, conversation, db, user): form = StereotypeForm( { 'name': "Stereotype", 'description': "description", }, conversation=conversation) assert form.is_valid() stereotype = form.save(commit=False) stereotype.owner = user stereotype.save() assert stereotype.name == "Stereotype" assert stereotype.description == "description"
def test_valid_data(self, user_db): form = StereotypeForm( { "name": "Stereotype", "description": "description" }, owner=user_db) assert form.is_valid() stereotype = form.save(commit=False) stereotype.owner = user_db stereotype.full_clean() assert stereotype.name == "Stereotype" assert stereotype.description == "description"
def test_repetead_stereotype_data(self, conversation, db, user): Stereotype.objects.create(name="Stereotype1", conversation=conversation, owner=user) form = StereotypeForm( { 'name': "Stereotype1", 'description': "description", }, conversation=conversation) assert not form.is_valid() assert form.errors == { '__all__': [ 'Stereotype for this conversation with this name already exists.' ], }
def edit_stereotype_context(request, conversation, stereotype): if conversation != stereotype.conversation: raise Http404 if request.method == 'POST': stereotype_form = StereotypeForm(request.POST, conversation=conversation, instance=stereotype) votes = StereotypeVote.objects.filter(author=stereotype) votes_formset = StereotypeVoteEditFormSet(request.POST, queryset=votes) if stereotype_form.is_valid() and votes_formset.is_valid(): stereotype = stereotype_form.save() for vote in votes_formset.save(commit=False): vote.author = stereotype vote.save() return redirect(conversation.get_absolute_url() + 'stereotypes/') else: stereotype_form = StereotypeForm(conversation=conversation, instance=stereotype) votes = StereotypeVote.objects.filter(author=stereotype) votes_formset = StereotypeVoteEditFormSet(queryset=votes) filtered_comments = Comment.objects.filter(conversation=conversation) for form in votes_formset: form.fields['comment'].queryset = filtered_comments return { 'stereotype_form': stereotype_form, 'votes_form': votes_formset, 'conversation_title': conversation.title, }
def create_stereotype_context(request, conversation, board=None): if request.method == 'POST': stereotype_form = StereotypeForm(request.POST, conversation=conversation) votes_formset = StereotypeVoteCreateFormSet(request.POST) if stereotype_form.is_valid() and votes_formset.is_valid(): stereotype = stereotype_form.save(commit=False) stereotype.owner = request.user stereotype.conversation = conversation stereotype.save() for vote in votes_formset.save(commit=False): vote.author = stereotype vote.save() clusterization = Clusterization.objects.get(conversation=conversation) cluster = Cluster(clusterization=clusterization, name=stereotype.name) cluster.save() cluster.stereotypes.add(stereotype) print(stereotype.votes) return redirect(conversation.get_absolute_url() + 'stereotypes/') else: stereotype_form = StereotypeForm(conversation=conversation) votes_formset = StereotypeVoteCreateFormSet(queryset=StereotypeVote.objects.none()) filtered_comments = Comment.objects.filter(conversation=conversation) for form in votes_formset: form.fields['comment'].queryset = filtered_comments return { 'stereotype_form': stereotype_form, 'votes_form': votes_formset, 'conversation_title': conversation.title, }
def edit_stereotype(request, conversation, stereotype): if request.method == 'POST': stereotype_form = StereotypeForm(request.POST, instance=stereotype) votes = StereotypeVote.objects.filter(author=stereotype) votes_formset = StereotypeVoteFormSet(request.POST, queryset=votes) if stereotype_form.is_valid() and votes_formset.is_valid(): stereotype = stereotype_form.save() for vote in votes_formset.save(commit=False): vote.author = stereotype vote.save() return redirect('cluster:stereotype-list') else: stereotype_form = StereotypeForm(instance=stereotype) votes = StereotypeVote.objects.filter(author=stereotype) votes_formset = StereotypeVoteFormSet(queryset=votes) return { 'stereotype_form': stereotype_form, 'votes_form': votes_formset, 'conversation_title': conversation.title, }
def create(request): form = StereotypeForm(request=request, owner=request.user) if form.is_valid_post(): form.save() return redirect("stereotypes:list") return {"form": form}
def test_blank_data(self, conversation): form = StereotypeForm({}, conversation=conversation) assert not form.is_valid() assert form.errors == { 'name': ['This field is required.'], }
def test_init_without_conversation(self): with pytest.raises(KeyError): StereotypeForm()
def test_init(self, conversation): StereotypeForm(conversation=conversation)
def test_blank_data(self, user_db): form = StereotypeForm({}, owner=user_db) assert not form.is_valid() assert form.errors == {"name": ["This field is required."]}