|
1 | | -# $Id: client.py,v 1.65 2003-01-08 04:39:36 richard Exp $ |
| 1 | +# $Id: client.py,v 1.66 2003-01-11 23:52:28 richard Exp $ |
2 | 2 |
|
3 | 3 | __doc__ = """ |
4 | 4 | WWW request handler (also used in the stand-alone server). |
@@ -1050,14 +1050,28 @@ def _handle_message(self): |
1050 | 1050 | files = [] |
1051 | 1051 | if self.form.has_key(':file'): |
1052 | 1052 | file = self.form[':file'] |
| 1053 | + |
| 1054 | + # if there's a filename, then we create a file |
1053 | 1055 | if file.filename: |
| 1056 | + # see if there are any file properties we should set |
| 1057 | + file_props={}; |
| 1058 | + if self.form.has_key(':file_fields'): |
| 1059 | + for field in self.form[':file_fields'].value.split(','): |
| 1060 | + if self.form.has_key(field): |
| 1061 | + if field.startswith("file_"): |
| 1062 | + file_props[field[5:]] = self.form[field].value |
| 1063 | + else : |
| 1064 | + file_props[field] = self.form[field].value |
| 1065 | + |
| 1066 | + # try to determine the file content-type |
1054 | 1067 | filename = file.filename.split('\\')[-1] |
1055 | 1068 | mime_type = mimetypes.guess_type(filename)[0] |
1056 | 1069 | if not mime_type: |
1057 | 1070 | mime_type = "application/octet-stream" |
| 1071 | + |
1058 | 1072 | # create the new file entry |
1059 | 1073 | files.append(self.db.file.create(type=mime_type, |
1060 | | - name=filename, content=file.file.read())) |
| 1074 | + name=filename, content=file.file.read(), **file_props)) |
1061 | 1075 |
|
1062 | 1076 | # we don't want to do a message if none of the following is true... |
1063 | 1077 | cn = self.classname |
@@ -1092,11 +1106,21 @@ def _handle_message(self): |
1092 | 1106 | messageid = "<%s.%s.%s@%s>"%(time.time(), random.random(), |
1093 | 1107 | self.classname, self.instance.config.MAIL_DOMAIN) |
1094 | 1108 |
|
| 1109 | + # see if there are any message properties we should set |
| 1110 | + msg_props={}; |
| 1111 | + if self.form.has_key(':msg_fields'): |
| 1112 | + for field in self.form[':msg_fields'].value.split(','): |
| 1113 | + if self.form.has_key(field): |
| 1114 | + if field.startswith("msg_"): |
| 1115 | + msg_props[field[4:]] = self.form[field].value |
| 1116 | + else : |
| 1117 | + msg_props[field] = self.form[field].value |
| 1118 | + |
1095 | 1119 | # now create the message, attaching the files |
1096 | 1120 | content = '\n'.join(m) |
1097 | 1121 | message_id = self.db.msg.create(author=self.userid, |
1098 | 1122 | recipients=[], date=date.Date('.'), summary=summary, |
1099 | | - content=content, files=files, messageid=messageid) |
| 1123 | + content=content, files=files, messageid=messageid, **msg_props) |
1100 | 1124 |
|
1101 | 1125 | # update the messages property |
1102 | 1126 | return message_id, files |
|
0 commit comments