def add_newsitem(request): if not request.user.is_staff: raise Http403 category = Category.objects.get(name='news') item = Newsitem(category=category, date=date.today()) item.save() return edit_item(request, item.id)
def process_file(root, filename, category_name, mu_type): print("Processing file %s" % os.path.join(root, filename)) #Special case for newsitems if filename.startswith("news"): (category_name, newsdate, order) = filename.split("_") category = Category.objects.filter(name=category_name) if category.count() == 0: print("Creating category %s" % category_name) category = Category(name=category_name) category.save() else: assert (category.count() == 1) category = category[0] if category_name == "news": print("Processing newsitem with date %s" % newsdate) item = Newsitem.objects.filter(category=category, date=newsdate) # FIXME: Many newsitems per date if not item.count(): item = Newsitem(category=category, date=newsdate) item.save() else: assert (item.count() == 1) item = item[0] else: item = Item.objects.filter(category=category) if item.count() == 0: print("Creating_item under category %s" % category_name) item = Item(category=category) item.save() else: item = item[0] full_fname = os.path.join(root, filename) content = Content.objects.filter(item=item, language=language) if content.count() == 0: print("Creating content for item %s with lang %s" % (item, language)) content = Content(item=item, language=language) content.save() else: content = content[0] revision = content.get_latest_revision() mtime = datetime.fromtimestamp(os.path.getmtime(full_fname)) if revision and revision.date >= mtime: print("\tSkipping based on file mtime") return f = codecs.open(full_fname, mode="r", encoding="utf8") if category_name == "news": # Newsfiles contain the subject as first line subject = f.readline()[:-1] # Summary is defined as being all the text after subject until # marker "[full]" alone at the beginning of line with LF at end summary = "" for line in f: if line == "[full]\n": break summary += line else: subject = "Initial commit for %s in %s" % (category, language) summary = "" data = f.read() content_data = data while data: data = f.read() content_data += data content_data = content_data.strip() revision = Revision(content=content, subject=subject, summary=summary, summary_markup_type=mu_type, data=content_data, data_markup_type=mu_type) revision.save() print("Prepared revision %s" % revision)
def process_file(root, filename, category_name, mu_type): print("Processing file %s" % os.path.join(root, filename)) #Special case for newsitems if filename.startswith("news"): (category_name, newsdate, order) = filename.split("_") category = Category.objects.filter(name=category_name) if category.count() == 0: print("Creating category %s" % category_name) category = Category(name=category_name) category.save() else: assert(category.count() == 1) category = category[0] if category_name == "news": print("Processing newsitem with date %s" % newsdate) item = Newsitem.objects.filter(category=category, date=newsdate) # FIXME: Many newsitems per date if not item.count(): item = Newsitem(category=category, date=newsdate) item.save() else: assert(item.count() == 1) item = item[0] else: item = Item.objects.filter(category=category) if item.count() == 0: print("Creating_item under category %s" % category_name) item = Item(category=category) item.save() else: item = item[0] full_fname = os.path.join(root, filename) content = Content.objects.filter(item=item, language=language) if content.count() == 0: print("Creating content for item %s with lang %s" % (item, language)) content = Content(item=item, language=language) content.save() else: content = content[0] revision = content.get_latest_revision() mtime = datetime.fromtimestamp(os.path.getmtime(full_fname)) if revision and revision.date >= mtime: print("\tSkipping based on file mtime") return f = codecs.open(full_fname, mode="r", encoding="utf8") if category_name == "news": # Newsfiles contain the subject as first line subject = f.readline()[:-1] # Summary is defined as being all the text after subject until # marker "[full]" alone at the beginning of line with LF at end summary = "" for line in f: if line == "[full]\n": break summary += line else: subject = "Initial commit for %s in %s" % (category, language) summary = "" data = f.read() content_data = data while data: data = f.read() content_data += data content_data = content_data.strip() revision = Revision(content=content, subject=subject, summary=summary, summary_markup_type=mu_type, data=content_data, data_markup_type=mu_type) revision.save() print("Prepared revision %s" % revision)