[Pykafe-commits] SF.net SVN: pykafe: [93] trunk/pykafe/server
Status: Pre-Alpha
Brought to you by:
jnmbk
From: <jn...@us...> - 2007-06-04 15:39:40
|
Revision: 93 http://pykafe.svn.sourceforge.net/pykafe/?rev=93&view=rev Author: jnmbk Date: 2007-06-04 08:39:40 -0700 (Mon, 04 Jun 2007) Log Message: ----------- orders thing and initial file for memberstats Modified Paths: -------------- trunk/pykafe/server/mainwindow.py trunk/pykafe/server/server.py Added Paths: ----------- trunk/pykafe/server/memberstats.ui Modified: trunk/pykafe/server/mainwindow.py =================================================================== --- trunk/pykafe/server/mainwindow.py 2007-06-04 15:38:47 UTC (rev 92) +++ trunk/pykafe/server/mainwindow.py 2007-06-04 15:39:40 UTC (rev 93) @@ -396,7 +396,7 @@ self.members_debt = QtGui.QDoubleSpinBox(self.groupBox) self.members_debt.setAlignment(QtCore.Qt.AlignRight) self.members_debt.setMaximum(1000000000.0) - self.members_debt.setMinimum(-1000000000.0) + self.members_debt.setMinimum(0) self.members_debt.setObjectName("members_debt") self.gridlayout9.addWidget(self.members_debt,3,1,1,1) self.gridlayout8.addLayout(self.gridlayout9,0,0,1,1) @@ -662,7 +662,7 @@ self.members_payingType.addItem(_("Pre Paid")) self.members_payingType.addItem(_("Normal")) self.textLabel1_3.setText(_("Username:")) - self.textLabel4_2.setText(_("Debt:")) + self.textLabel4_2.setText(_("Credit:")) self.textLabel3_2.setText(_("Real Name:")) self.textLabel7.setText(_("Subscribing period:")) self.label_2.setText(_("Starts")) Added: trunk/pykafe/server/memberstats.ui =================================================================== --- trunk/pykafe/server/memberstats.ui (rev 0) +++ trunk/pykafe/server/memberstats.ui 2007-06-04 15:39:40 UTC (rev 93) @@ -0,0 +1,189 @@ +<ui version="4.0" > + <class>MemberStatsDialog</class> + <widget class="QDialog" name="MemberStatsDialog" > + <property name="geometry" > + <rect> + <x>0</x> + <y>0</y> + <width>507</width> + <height>302</height> + </rect> + </property> + <property name="windowTitle" > + <string>Member statistics</string> + </property> + <property name="windowIcon" > + <iconset>../../data/icons/pyKafe.png</iconset> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <widget class="QSplitter" name="splitter_2" > + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <widget class="QSplitter" name="splitter" > + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <widget class="QWidget" name="layoutWidget" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="label" > + <property name="text" > + <string>Daily usage graph</string> + </property> + </widget> + </item> + <item> + <widget class="QGraphicsView" name="dailyUsage" /> + </item> + </layout> + </widget> + <widget class="QWidget" name="layoutWidget" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="label_2" > + <property name="text" > + <string>Hourly usage graph</string> + </property> + </widget> + </item> + <item> + <widget class="QGraphicsView" name="hourlyUsage" /> + </item> + </layout> + </widget> + </widget> + <widget class="QWidget" name="" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="profit" > + <property name="text" > + <string>Profit from this member +until now:</string> + </property> + </widget> + </item> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="label_4" > + <property name="text" > + <string>Average bandwith usage per hour</string> + </property> + </widget> + </item> + <item> + <widget class="QGraphicsView" name="bandwidthUsage" /> + </item> + <item> + <widget class="QLabel" name="received" > + <property name="text" > + <string>Received:</string> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="sent" > + <property name="text" > + <string>Sent:</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </widget> + </item> + <item row="1" column="0" > + <widget class="QDialogButtonBox" name="buttonBox" > + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons" > + <set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>MemberStatsDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel" > + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel" > + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>MemberStatsDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel" > + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel" > + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui> Modified: trunk/pykafe/server/server.py =================================================================== --- trunk/pykafe/server/server.py 2007-06-04 15:38:47 UTC (rev 92) +++ trunk/pykafe/server/server.py 2007-06-04 15:39:40 UTC (rev 93) @@ -43,11 +43,13 @@ class ListenerThread(QtCore.QThread): - def __init__(self, parent, socketDescriptor, clients, config): + def __init__(self, parent, socketDescriptor, clients, config, server): + #TODO: We should use server only, clients and config aren't necessary QtCore.QThread.__init__(self, parent) self.socketDescriptor = socketDescriptor self.clients = clients self.config = config + self.server = server def run(self): self.tcpSocket = QtNetwork.QTcpSocket() @@ -83,10 +85,17 @@ if db.cur.fetchall()[0][0]: client.sendMessage("0031") logger.add(logger.logTypes.information, _("Member logged in"), computer = client.name, member = username) - self.emit(QtCore.SIGNAL("stateChange"), self.clientNumber, ClientSession.loggedIn, user = username) + self.emit(QtCore.SIGNAL("stateChange"), self.clientNumber, ClientSession.loggedIn, username) else: logger.add(logger.logTypes.warning, _("Someone entered wrong password or username"), computer = client.name, member = username) client.sendMessage("0030") + elif data[:3] == "018": + message = "" + for product in self.server.products: + message += product.name +'|'+ str(product.price) +'|'+ str(product.quantity) +'||' + print "sending:", message[:-2] + self.tcpSocket.write(base64.encodestring(message[:-2])) + self.tcpSocket.waitForBytesWritten() self.tcpSocket.disconnectFromHost() @@ -135,13 +144,16 @@ if state == ClientSession.loggedIn: self.session.user = user self.session.startTime = QtCore.QDateTime.currentDateTime() - self.setTexts((2,3,4), (user,currency(0.0), self.session.startTime.time().toString("00.00"))) + self.setTexts((2,3,4), (user,currency(float(self.config.price_fixedprice)), self.session.startTime.time().toString("00.00"))) if endTime: self.session.endTime = endTime self.setText(5, self.session.endTime.time().toString("hh.mm")) self.changeColor("green") elif state == ClientSession.notReady: - #if self.session.state in (ClientSession.notConnected, ClientSession.notReady): + if self.session.state == ClientSession.loggedIn: + """if self.parent().payingType == _("Pre Paid"): + print "user is pre_paid and has %s credit" % currency(self.parent().debt) + self.parent().reduceCredit(self.session.calculatePrice())""" if self.config.filter_enable: message = "007" filterFile = open(self.config.filter_file) @@ -214,6 +226,8 @@ def updateValuesWithoutPassword(self, memberInformation): self.userName, self.realName, self.startDate, self.endDate, self.debt, self.payingType = memberInformation self.setText(0, self.userName) + def reduceCredit(self, value): + self.debt -= value class PykafeServer(QtNetwork.QTcpServer): def __init__(self, parent, ui, cashier = None): @@ -258,14 +272,14 @@ self.products.append(Product(self.ui.orders_treeWidget_2, product)) def incomingConnection(self, socketDescriptor): - thread = ListenerThread(self.parent(), socketDescriptor, self.clients, self.config) + thread = ListenerThread(self.parent(), socketDescriptor, self.clients, self.config, self) self.threads.append(thread) QtCore.QObject.connect(thread, QtCore.SIGNAL("stateChange"), self.setClientState) thread.start() print "We have %d thread(s)" % len(self.threads) - def setClientState(self, client, state): - self.clients[client].setState(state) + def setClientState(self, client, state, user = "guest"): + self.clients[client].setState(state, user) def startClient(self): client = self.ui.main_treeWidget.currentItem() @@ -284,7 +298,7 @@ client.sendMessage("0011") client.setState(ClientSession.loggedIn) elif state == ClientSession.waitingMoney: - client.setState(ClientSession.ready) + client.setState(ClientSession.notReady) client.sendMessage("015") elif state == ClientSession.notReady: QtGui.QMessageBox.critical(self.parent(), _("Error"), _("Client isn't ready")) @@ -303,7 +317,7 @@ client.sendMessage("0011") client.setState(ClientSession.loggedIn) elif state == ClientSession.waitingMoney: - client.setState(ClientSession.ready) + client.setState(ClientSession.notReady) client.sendMessage("015") elif state == ClientSession.notReady: QtGui.QMessageBox.critical(self.parent(), _("Error"), _("Client isn't ready")) @@ -336,7 +350,7 @@ client.sendMessage("0010") client.setState(ClientSession.ready) elif state == ClientSession.waitingMoney: - client.setState(ClientSession.ready) + client.setState(ClientSession.notReady) client.sendMessage("015") def changeButton(self): @@ -405,6 +419,9 @@ if not member: QtGui.QMessageBox.critical(self.parent(), _("Error"), _("You must select a member first")) return + if member.userName == "guest": + QtGui.QMessageBox.information(self.parent(), _("Error"), _("You can't change guest")) + return memberInformation = [unicode(self.ui.members_username.text()), " ", unicode(self.ui.members_realName.text()), @@ -440,6 +457,9 @@ if not member: QtGui.QMessageBox.critical(self.parent(), _("Error"), _("You must select a member first")) return + if member.userName == "guest": + QtGui.QMessageBox.information(self.parent(), _("Error"), _("You can't delete guest")) + return answer = QtGui.QMessageBox.question(self.parent(), _("Are you sure?"), _("Do you really want to delete this member?"), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes).__or__(QtGui.QMessageBox.No), QtGui.QMessageBox.No) if answer == QtGui.QMessageBox.Yes: Database().runOnce("delete from members where username = ?", (member.userName,)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |