import
sys
from
datetime
import
date, datetime
import
pymongo.mongo_client
from
PyQt5
import
QtCore, QtWidgets, QtGui
from
PyQt5.QtWidgets
import
QMessageBox, QLineEdit
connection
=
pymongo.MongoClient(
'localhost'
,
27017
)
database
=
connection[
'bremi691_ead'
]
collection
=
database[
'usuarios'
]
class
UiDialog(
object
):
def
__init__(
self
):
self
.lineEdit_name
=
QtWidgets.QLineEdit(Dialog)
self
.lineEdit_email
=
QtWidgets.QLineEdit(Dialog)
self
.lineEdit_pwd
=
QtWidgets.QLineEdit(Dialog)
self
.lineEdit_mktg
=
QtWidgets.QLineEdit(Dialog)
self
.label_name
=
QtWidgets.QLabel(Dialog)
self
.label_email
=
QtWidgets.QLabel(Dialog)
self
.label_pwd
=
QtWidgets.QLabel(Dialog)
self
.label_mktg
=
QtWidgets.QLabel(Dialog)
def
setup_ui(
self
, Dialog):
Dialog.setObjectName(
"Dialog"
)
Dialog.resize(
448
,
300
)
self
.lineEdit_name.setGeometry(QtCore.QRect(
140
,
50
,
241
,
21
))
self
.lineEdit_name.setInputMethodHints(QtCore.Qt.ImhUppercaseOnly)
self
.lineEdit_name.setObjectName(
"lineEdit_name"
)
self
.lineEdit_email.setGeometry(QtCore.QRect(
140
,
90
,
191
,
21
))
self
.lineEdit_email.setInputMethodHints(QtCore.Qt.ImhEmailCharactersOnly)
self
.lineEdit_email.setObjectName(
"lineEdit_email"
)
self
.lineEdit_pwd.setGeometry(QtCore.QRect(
140
,
130
,
131
,
21
))
self
.lineEdit_pwd.setInputMethodHints(QtCore.Qt.ImhSensitiveData | QtCore.Qt.ImhUppercaseOnly)
self
.lineEdit_pwd.setObjectName(
"lineEdit_pwd"
)
self
.lineEdit_mktg.setGeometry(QtCore.QRect(
140
,
170
,
131
,
21
))
self
.lineEdit_mktg.setInputMethodHints(QtCore.Qt.ImhUppercaseOnly)
self
.lineEdit_mktg.setObjectName(
"lineEdit_mktg"
)
self
.label_name.setGeometry(QtCore.QRect(
71
,
50
,
60
,
16
))
self
.label_name.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
self
.label_name.setObjectName(
"label_name"
)
self
.label_email.setGeometry(QtCore.QRect(
71
,
90
,
60
,
16
))
self
.label_email.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
self
.label_email.setObjectName(
"label_email"
)
self
.label_pwd.setGeometry(QtCore.QRect(
70
,
130
,
60
,
16
))
self
.label_pwd.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
self
.label_pwd.setObjectName(
"label_pwd"
)
self
.label_mktg.setGeometry(QtCore.QRect(
60
,
170
,
71
,
20
))
self
.label_mktg.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter)
self
.label_mktg.setObjectName(
"label_mktg"
)
button_ok
=
QtWidgets.QPushButton(Dialog)
button_ok.setText(
"OK"
)
button_ok.move(
200
,
225
)
button_ok.clicked.connect(insert_record)
self
.retranslate_ui(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def
retranslate_ui(
self
, Dialog):
_translate
=
QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate(
"Dialog"
,
"Add new student"
))
self
.label_name.setText(_translate(
"Dialog"
,
"Nome: "
))
self
.label_email.setText(_translate(
"Dialog"
,
"e-mail: "
))
self
.label_pwd.setText(_translate(
"Dialog"
,
"Senha:"
))
self
.label_mktg.setText(_translate(
"Dialog"
,
"Marketing:"
))
def
clear_all():
my_form
=
{ui.lineEdit_name, ui.lineEdit_email, ui.lineEdit_pwd, ui.lineEdit_mktg}
for
fields
in
my_form: fields.clear()
def
insert_record():
try
:
if
ui.lineEdit_name.text()
and
ui.lineEdit_email.text()
and
ui.lineEdit_pwd.text()
and
ui.lineEdit_mktg.text() !
=
"":
data
=
{
'nome'
: ui.lineEdit_name.text(),
'email'
: ui.lineEdit_email.text(),
'senha'
: ui.lineEdit_pwd.text(),
'data_cadastro'
: datetime.today(),
'niveis_acesso_id'
:
1
,
'validacao'
:
'sim'
,
'ativo'
:
0
,
'como_chegou'
: ui.lineEdit_mktg.text()}
collection.insert_one(data)
clear_all()
QMessageBox.information(
None
,
"Informação:"
,
"Dados adicionados com sucesso!"
)
else
:
QMessageBox.warning(
None
,
"Antenção:"
,
"Por favor preencha os campos em branco!"
)
except
Exception:
QMessageBox.critical(
None
,
"Erro:"
,
"NĂŁo foi possĂvel inserir os dados.\n Cheque o servidor de dados."
)
if
__name__
=
=
"__main__"
:
app
=
QtWidgets.QApplication(sys.argv)
Dialog
=
QtWidgets.QDialog()
ui
=
UiDialog()
ui.setup_ui(Dialog)
Dialog.show()
sys.exit(app.exec_())