Exemplo n.º 1
0
	def post(self):
		content = self.request.get('content')
		method = self.request.get('method')

		if method == 'preview':
			self.do_preview(self, content)

		elif method == 'publish':
			link = self.request.get('permalink')
			target = db.GqlQuery('''select * from Article where permalink = :1''', link).get()
			if target != None:
				self.save_title = self.request.get('thetitle')
				self.save_content = content
				self.save_permalink = link
				self.save_permit_comment = self.request.get('permitComment')
				self.save_category = self.request.get('cat')
				self.save_tags = self.request.get('tags')
				self.get()
			else:
				article = Article()
				article.thetitle = self.request.get('thetitle')
				article.content = content
				article.thumbnail = self.request.get('thumbnail')
				article.permalink = self.request.get('permalink')
				article.permit_comment = True if self.request.get('permitComment') == 'permit' else False

				cat = self.request.get('cat')
				if cat == 'unsorted':
					article.has_category = False
				else:
					article.has_category = True
					cat_item = Category.all().filter('name = ', cat).get()
					article.category = cat_item
					cat_item.count = cat_item.count + 1
					cat_item.put()

				mod_archive(article)

				article.year = article.time_stamp.year
				article.month = article.time_stamp.month
				article.day = article.time_stamp.day

				article.id = str(article.time_stamp.year) + '-' + str(article.time_stamp.month) + '-' + str(article.time_stamp.day) + '-' + \
				             str(article.time_stamp.hour) + '-' + str(article.time_stamp.minute) + '-' + str(article.time_stamp.second) + '-' + \
							 str(article.time_stamp.microsecond)

				query = Article.all().order('-time_stamp').fetch(1)
				record = None if query == [] else query[0]

				if record != None:
					record.link_next = article.permalink
					record.year_next = article.year
					record.month_next = article.month
					record.day_next = article.day
					record.title_next = article.thetitle
					record.put()

					article.link_prev = record.permalink
					article.year_prev = record.year
					article.month_prev = record.month
					article.day_prev = record.day
					article.title_prev = record.thetitle
				else:
					article.link_prev = ''
					article.year_prev = -1
					article.month_prev = -1
					article.day_prev = -1
					article.title_prev = ''

				article.link_next = ''
				article.year_next = -1
				article.month_next = -1
				article.day_next = -1
				article.title_next = ''

				article.put();

				mod_article_tag(article, self.request.get('tags').split(' '), False)

				self.redirect('/atf-articles');

		# Modify an article
		else:
			# Article to be modified
			target = Article.all().filter('id =', self.request.get('articleId')).get()

			link = self.request.get('permalink')
			# If there exists an article with that link name
			suspect = db.GqlQuery('''select * from Article where permalink = :1''', link).get()

			if suspect != None and target.id != suspect.id: 
				self.save_title = self.request.get('thetitle')
				self.save_content = content
				self.save_permalink = link
				self.save_permit_comment = self.request.get('permitComment')
				self.save_category = self.request.get('cat')
				self.save_tags = self.request.get('tags')
				self.get()
			else:
				if target.has_category:
					target.category.count = target.category.count - 1
					target.category.put()

				target.thetitle = self.request.get('thetitle')
				target.content = content
				target.thumbnail = self.request.get('thumbnail')
				target.permalink = self.request.get('permalink')
				target.permit_comment = True if self.request.get('permitComment') == 'permit' else False

				cat = self.request.get('cat')
				if cat == 'unsorted':
					target.category = None
					target.has_category = False
				else:
					target.has_category = True
					target.category = Category.all().filter('name =', self.request.get('cat')).get()
					target.category.count = target.category.count + 1
					target.category.put()
				target.put()
				mod_article_tag(target, self.request.get('tags').split(' '), True)

				self.redirect('/atf-articles');