Signnow API/django app/отправить письмо/электронное подписание контракта/ [закрыто]

у меня было задание:


  • Задачи под рукой

o Краткое описание задач, которые необходимо выполнить

▪ Задача состоит в том, чтобы создать приложение на Django, позволяющее пользователю зарегистрироваться, войти в систему, и подписать заранее определенный контракт. Контракт будут подписывать 2 стороны: одна из них один из них - пользователь, который изначально регистрируется и подписывает контракт, второй подписывающий вторая сторона должна быть приглашена к подписанию по электронной почте.

o Истории пользователей

▪ Как пользователь, я хочу зарегистрироваться, чтобы иметь возможность войти в систему и использовать функции подписи функции приложения - Критерии приемлемости

o Достаточно базовой аутентификации django (session auth) o Для регистрации достаточно имени пользователя и пароля o Не требуется дополнительной проверки пароля или имени пользователя o При входе в систему я должен быть перенаправлен на страницу инстанцирования

▪ Как пользователь, я хочу войти в систему, чтобы использовать функции подписи в приложении. - Критерии приемлемости

o Войдите в систему, используя имя пользователя и пароль o Не требуется дополнительной проверки пароля или имени пользователя o После входа в систему я должен быть направлен на страницу инстанцирования

▪ Как пользователь, я хочу создать новый контракт, чтобы определить стороны его подписания (подписантов) и подписать его

- Критерии приемлемости

o Инстанцирование контракта выполняется на странице представления (страница инстанцирования контракта страница инстанцирования), которая принимает необходимую информацию по мере необходимую информацию, как указано в следующих пунктах: o Контракт должен состоять из текста-заполнителя ("lorem impsum...") o В договоре должно быть три пустых места, которые необходимо заполнить для получателей: полное имя, дата и подпись. o Одна из подписей - это сам пользователь (я, вошедший в систему как пользователь) o Другой подписант должен быть приглашен путем сбора адреса электронной почты адреса электронной почты от пользователя (меня, который вошел в систему как пользователь). Этот информация будет собрана на этой странице создания контракта

▪ Как пользователь, я хочу подписать соглашение после его инстанцирования, чтобы я мог заполнить его, подписать цифровой подписью и отправить другому получателю для подписания

- Принятие Кртиерии

o После инстанцирования контракта на странице инстанцирования контракта я должен быть направлен на страницу, которая показывает мне соглашение Docusign o Я должен видеть соглашение с текстом-заполнителем и пустыми местами для ввода моего полного имени, даты и подписи. подпись o После заполнения соглашения я должен быть перенаправлен на на другую страницу с сообщением об успехе o Другой подписант также должен получить электронное письмо со ссылкой для подписать соглашение


Меня просили использовать для этого API docusign, но по некоторым причинам у меня есть доступ к API SignNow.

я никогда не работал с REST-API, честно говоря:)

my setting.py:

my views.py:

my forms.py:

from django import forms
from django.contrib.auth.models import User


# class ContractForm(forms.Form):
#    user_name = forms.CharField(max_length=100)
#    recipient_email = forms.EmailField()
class UserRegistrationForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput)

    class Meta:
        model = User
        fields = ['username', 'email', 'password']


class ContractForm(forms.Form):
    title = forms.CharField(max_length=100)
    recipients = forms.CharField(widget=forms.Textarea, help_text="Enter recipient emails separated by commas.")
    content = forms.CharField(widget=forms.Textarea, help_text="Enter contract content with placeholders.")


my contracts(имя приложения)/urls.py:

from django.views.generic import TemplateView
from . import views
from django.contrib.auth import views as auth_views
from django.urls import path
from .views import register, create_contract


urlpatterns = [
    path('register/', register, name='register'),
    path('login/', auth_views.LoginView.as_view(template_name='contracts/login.html'), name='login'),
    path('create-contract/', create_contract, name='create_contract'),
    path('success/', TemplateView.as_view(template_name='contracts/success.html'), name='success'),

]

templates/contracts/create_contract.html:

<!DOCTYPE html>
<html>
<head>
    <title>Create Contract</title>
</head>
<body>
    <h2>Create Contract</h2>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Send Contract</button>
    </form>
</body>
</html>


templates/contracts/login.html:

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
</head>
<body>
    <h2>Login</h2>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Login</button>
    </form>
    <p>Don't have an account? <a href="{% url 'register' %}">Register here</a></p>
</body>
</html>

templates/contracts/register.html:

<!DOCTYPE html>
<html>
<head>
    <title>Register</title>
</head>
<body>
    <h2>Register</h2>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Register</button>
    </form>
    <p>Already have an account? <a href="{% url 'login' %}">Login here</a></p>
</body>
</html>

templates/contracts/success.html:

<!DOCTYPE html>
<html>
<head>
    <title>Success</title>
</head>
<body>
    <h2>Contract Sent Successfully!</h2>
    <p>Your contract has been sent to the recipients.</p>
    <a href="{% url 'create_contract' %}">Create another contract</a>
</body>
</html>
Вернуться на верх